Automatizar descargas con loop

Iniciado por itzg3, 30 Abril 2014, 18:14 PM

0 Miembros y 1 Visitante están viendo este tema.

itzg3

Tengo un script en php , que lo hice para descargar unos 5 archivos de cada uno con diferentes url el punto es que no he logrado hacer que al terminar una descarga siga el siguiente archivo y asi hasta terminar todo.

Código (php) [Seleccionar]

foreach($out[1] as $url){

$url=str_ireplace(" ", "%20", $url);
$cleanName = basename($url);
echo $url."<br>";
echo $cleanName;
@@header('Content-Disposition: attachment; filename="'.$cleanName.'"');
ob_clean();
flush();
@readfile($url);
die($url); /* aquí me quedo, estoy en duda de como controlar la descarga .Cuando acabe de descargar un archivo pasar al siguiente. */
sleep(10);
}


Lo que   logro con esto es descargar solo 1 archivo y ahi queda todo.

~ Yoya ~

Bro, no puedes usar die() y no entiendo porque se te ocurrió usar die(). die() finaliza la ejecución del script completo.

Y para lo que quieres hacer no te va a funcionar de esa manera, siempre va a descargar un solo. Porque el script se queda ejecutando y el navegador se queda en espera que el script termine su ejecución, y cuando el script termina de ejecutarse el navegador termina de descargar el primer archivo. Y como termino de ejecutarse, entonce hay finaliza el proceso por completo.

Si quieres hacer algo similar, entonce se me ocurre que uses iframe.

Saludos.
Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.

JorgeEMX

No puedes hacer eso, por el hecho que interrumpes el ciclo a mandar a descargar el archivo.

Si estás dentro de una app web, podrías auxiliarte de javascript (y AJAX por ejemplo) y hacer el ciclo ahí. Si es un script PHP podrías ocupar el comando wget..

Saludos