Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    intercettare il download

    Ciao a tutti
    E possibile intercettare se un utente sta realmente scaricando un qualcosa magari intercettare il clickk sul pulsante salva della finestra "Salva con nome"?

  2. #2
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Quote Originariamente inviata da techno Visualizza il messaggio
    Ciao a tutti
    E possibile intercettare se un utente sta realmente scaricando un qualcosa magari intercettare il clickk sul pulsante salva della finestra "Salva con nome"?
    E magari anche sapere cosa sta scaricando? scherzi a parte se si potesse sarei molto preoccupato, a meno che non intendi "gestire" download legati al sito che si sta visualizzando solo nella scheda nella quale si fa. In pratica a meno che non stai lavorando con download "tuoi" (legati al tuo sito) non dovresti mai avere informazioni, il bottone "salva" (e relative informazioni) è per tutto il browser (quindi diverse schede, diversi siti ecc.) quindi andresti a ricevere informazioni derivanti dalla navigazione dell'utente in generale.

    Qual è la tua reale esigenza? a cosa ti serve fare ciò nel pratico?
    Ultima modifica di U235; 28-01-2021 a 17:56

  3. #3
    Ma certo che il download e legato ad un mio sito a me interessa sapere se effettivamente sta scaricando il file

  4. #4
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    Quote Originariamente inviata da techno Visualizza il messaggio
    Ma certo che il download e legato ad un mio sito a me interessa sapere se effettivamente sta scaricando il file
    Un modo potrebbe essere quello di scaricare il file tramite ajax e quando hai ottenuto il file (in base64 o direttamente in array di byte) fai partire il download. In questo modo sei certo che l'utente ha scaricato qualcosa. Se poi l'ha salvata non è dato saperlo...

    Un esempio rapido in codice (solo lato client ovviamente):
    codice:
    var saveFile = (function () {
                var a = document.createElement("a");
                document.body.appendChild(a);
                a.style = "display: none";
                return function (data, name) {
                    var blob = new Blob(data, { type: "octet/stream" }),
                        url = window.URL.createObjectURL(blob);
                    a.href = url;
                    a.download = name;
                    a.click();
                    window.URL.revokeObjectURL(url);
                };
            }());
    //se arriva in base64: (la stringa rappresenta il file)
    var fileB64 = 'UEsDBAoAAAAAAIh9b0kAAAAAAAAAAAAAAAAKAAAARFMzMjMyUlR..........';
    //trasformi in array di byte (o se arriva gia come array di byte salti questo passaggio)
              var binFile = window.atob(fileB64);        var bytes = new Uint8Array(binFile.length);
            for (var i = 0; i < binFile.length; i++) {
                var ascii = binFile.charCodeAt(i);
                bytes[i] = ascii;
            }
    
    //fai aprire la finestra di download
            saveFile([bytes], 'test.zip');

  5. #5
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,539
    .

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.