Herunterladen von großer Anzahl von Bildern auf meinen Server und benachrichtigt den Benutzer, wenn Download abgeschlossen ist

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

Frage

Ich mag eine große Menge von Dateien auf meinen Server zum Download bereit. Ich habe eine Liste der verschiedenen Dateien zum Download und Orte, an denen sie setzen. Das alles ist kein Problem, ich wget verwenden, um die Datei herunterladen, führen Sie diese mit shell_exec

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

Dies funktioniert gut, der Server startet alle Themen und die Dateien werden in kürzester Zeit heruntergeladen werden.

Das Problem ist, mag ich den Benutzer benachrichtigen, wenn die Dateien heruntergeladen werden ... Und das mit meiner derzeitigen Art und Weise funktioniert nicht, Dinge zu tun. Wie würden Sie diese umsetzen?

Anregungen wäre hilfreich!

War es hilfreich?

Lösung

Ich denke, dass Sie in der Lage sind zu überprüfen, ob alle Dateien im Ort mit so etwas wie

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

Alles was Sie jetzt tun müssen, ist ein Skript auf Ihrem Server aufrufen, die diese Funktion aufruft jeder zweite (oder so). Sie können entweder erreichen dies mit Meta Refresh (Forcierung des Browser die Seite nach n Sekunden neu geladen werden) oder unter Verwendung von AJAX (einen Blick auf jQuery .getJSON haben, zum Beispiel).

Wenn das Skript aufgerufen wird und die Dateien sind noch nicht alle heruntergeladen, Druck etwas wie „Bitte warten“ und aktualisieren Sie es später erneut. Ansonsten zeigt die Erfolgsmeldung. Das ist alles.

Andere Tipps

Sie können prüfen, mit exec dem externen wget Befehl auszuführen . Ihr PHP-Skript blockiert, bis der externen Befehl wird beendet. Sobald sie abgeschlossen ist können Sie den Namen der Datei abgeschlossen Echo.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top