Il download gran numero di immagini al mio server e notificare l'utente quando download è finito

StackOverflow https://stackoverflow.com/questions/2409318

Domanda

Vorrei scaricare una grande quantità di file al mio server. Ho una lista di diversi file da scaricare e posizioni dove metterli. Tutto questo non è un problema, io uso wget per scaricare il file, eseguire questo con shell_exec

$command = 'wget -b -O' . $filenameandpathtoput . ' ' . $submission['url'];
shell_exec($command);

Questa grande opera, il server avvia tutti i fili ei file sono scaricati in poco tempo.

Il problema è che, voglio informare l'utente quando i file vengono scaricati ... E questo non funziona con il mio modo attuale di fare le cose. Quindi, come si potrebbe implementare questa?

Ogni suggerimento sarà utile!

È stato utile?

Soluzione

Credo che si è in grado di verificare se tutti i file sono in atto con qualcosa come

function checkFiles ()
{
    foreach ($_SESSION["targetpaths"] as $p)
    {
        if (!is_file($p)) return false;
    }
    return true;
}

Ora tutto ciò che dovete fare è chiamare uno script sul server che chiama questa funzione ogni secondo (o giù di lì). È possibile raggiungere questo obiettivo con Meta Refresh (forzando il browser per ricaricare la pagina dopo n secondi) oppure utilizzando AJAX (dare un'occhiata a .getJSON di jQuery, per esempio).

Se lo script si chiama ei file non sono ancora tutte scaricato, stampare qualcosa come "attendere" e aggiornare in un secondo momento. In caso contrario, il messaggio di successo. Questo è tutto.

Altri suggerimenti

È possibile considerare l'utilizzo di exec per eseguire il comando wget esterna . Lo script PHP bloccherà fino al completamento del comando esterni. Una volta completato si può eco il nome del file completato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top