La descarga de gran cantidad de imágenes en el servidor y notificar al usuario cuando la descarga ha terminado

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

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!

¿Fue ú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.

Otros consejos

Puede considerar el uso de exec para ejecutar el comando externo wget . La secuencia de comandos PHP bloqueará hasta que se complete el mandato externos. Una vez que se complete se puede repetir el nombre del archivo completo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top