Téléchargement grand nombre d'images à mon serveur et d'informer l'utilisateur Une fois le téléchargement terminé

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

Question

Je veux télécharger une grande quantité de fichiers sur mon serveur. J'ai une liste des différents fichiers à télécharger et les endroits où les mettre. Tout cela n'est pas un problème, j'utilise wget pour télécharger le fichier, exécutez ce avec shell_exec

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

Cela fonctionne très bien, le serveur démarre tous les fils et les fichiers sont téléchargés en peu de temps.

Le problème est, je veux avertir l'utilisateur lorsque les fichiers sont téléchargés ... Et cela ne fonctionne pas avec ma façon actuelle de faire les choses. Alors, comment voulez-vous mettre en œuvre cette?

Toutes les suggestions seraient utiles!

Était-ce utile?

La solution

Je suppose que vous êtes en mesure de vérifier si tous les fichiers sont en place avec quelque chose comme

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

Maintenant, tout ce que vous avez à faire est d'appeler un script sur votre serveur qui appelle cette fonction à chaque seconde (ou presque). Vous pouvez accomplir ceci avec Meta Refresh (forcer le navigateur à recharger la page après n secondes) ou en utilisant AJAX (jetez un oeil à la .getJSON jQuery, par exemple).

Si le script est appelé et les fichiers ne sont pas encore tous les documents téléchargés, imprimer quelque chose comme « S'il vous plaît attendre » et se rafraîchir à nouveau plus tard. Dans le cas contraire, affiche le message de réussite. C'est tout.

Autres conseils

Vous pouvez envisager d'utiliser exec pour exécuter la commande wget externe . Votre script PHP va bloquer jusqu'à ce que la commande se termine externes. Une fois terminé, vous pouvez l'écho le nom du dossier complet.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top