Copiar archivos de un sitio a otro con la función copy de php


Un día se me ocurrió copiar un archivo comprimido y decidí hacer el proceso
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

Comentarios

  1. esto funciona con archivos de tamaño pequeño, con archivos grandes da time out, alguna solución??

    ResponderBorrar
  2. podes colocar en la cabecera de tu script lo siguiente:

    set_time_limit(0);

    o sino tocando directamente el php.ini

    max_execution_time = 180

    colocandole mas segundos de tiempo de ejecucion

    un abrazo

    ResponderBorrar

Publicar un comentario

Dejanos tu opinión

Entradas más populares de este blog

Hosting gratis con PHP y MySQL

¿Qué es Node.js? Guía completa para principiantes