La descarga de gran cantidad de imágenes en el servidor y notificar al usuario cuando la descarga ha terminado
-
18-09-2019 - |
Pregunta
Quiero descargar una gran cantidad de archivos a mi servidor. Tengo una lista de los diferentes archivos para descargar y ubicaciones de qué hacer con ellos. Todo esto no es un problema, yo uso wget para descargar el archivo, ejecutar esto con shell_exec
$command = 'wget -b -O' . $filenameandpathtoput . ' ' . $submission['url'];
shell_exec($command);
Esto funciona muy bien, el servidor inicia todos los hilos y los archivos se descargan en ningún momento.
El problema es que quiero notificar al usuario cuando se descargan los archivos ... Y esto no funciona con mi actual forma de hacer las cosas. Entonces, ¿cómo aplicar esto?
Cualquier sugerencia sería muy útil!
Solución
supongo que son capaces de comprobar si todos los archivos están en su lugar con algo como
function checkFiles ()
{
foreach ($_SESSION["targetpaths"] as $p)
{
if (!is_file($p)) return false;
}
return true;
}
Ahora todo lo que tiene que hacer es llamar a un script en su servidor que llama a esta función cada segundo (o algo así). Usted puede lograr esto con Meta Refresh (forzando al navegador a cargar la página después de n segundos) o mediante el uso de AJAX (echar un vistazo a .getJSON
de jQuery, por ejemplo).
Si se llama al script y los archivos no son sin embargo todos descargado, imprimir algo como "Por favor espere" y refrescar de nuevo más tarde. De lo contrario, mostrar el mensaje de éxito. Eso es todo.