Copiar archivos de un sitio a otro con la función copy de php
de la siguiente manera:
creo una carpeta en el servidor con cualquier nombre, por ejemplo mis-pruebas si es necesario le doy permisos 755 y verifico que este vacia, allí coloco el script, cuando lo ejecute los archivos copiados "caeran" en el mismo directorio
<?php $origen = 'http://www.sitiodeinternet.com/archivo.zip'; $destino='archivo.zip' copy ($origen,$destino); ?>
Luego me gustó el chiche, y probé bajar fotos en modo "BATCH" así:
si no lo hice antes creo una carpeta en el servidor con cualquier nombre, por ejemplo mis-pruebas y le doy permisos 755 si es necesario
<?php $origen='http://www.sitiodeinternet.com/'; $foto[] = 'foto1.jpg'; $foto[]='foto2.jpg'; //... y asi sucesivamente foreach ($foto as $key=>$value) {copy("$origen/$value",$value); } echo "archivos copiados!"; ?>Como puede apreciarse el código no comprueba si los archivos solicitados existen o no, supuestamente deben existir para ser bajados, sino durante la iteración la función dará un error, esto puede resolverse manejando los errores y comprobando previamente si hay archivos de origen a copiar o no, pero esto dejemoslo para más adelante.la función también puede desplegar un error si el directorio donde se coloque este script no tiene los permisos correspondientes.
Nota: este script debe tomarse como didáctico no soy responsable por el uso o mal uso del mismo
esto funciona con archivos de tamaño pequeño, con archivos grandes da time out, alguna solución??
ResponderBorrarpodes colocar en la cabecera de tu script lo siguiente:
ResponderBorrarset_time_limit(0);
o sino tocando directamente el php.ini
max_execution_time = 180
colocandole mas segundos de tiempo de ejecucion
un abrazo