Hola,
La función usa la estructura $_FILES por lo que se presume que esa función solo va a funcionar si los datos del fichero vienen de un formulario con un campo de tipo file.
Por motivos de seguridad los formularios solo envían el nombre del fichero.
Actualmente la función file() de php soporta varios tipos de protocolos, como por ejemplo http por lo que es igual de válido realizar estas dos formas para leer un fichero.
file ('/files/ejemplo.gif');
file ('http://host/files/ejemplo.gif');
Lo que hay que hacer es lo mismo que cuando hacemos un stream para descargar ficheros. Leer el fichero y escribirlo en nuestra ubicación.
$archivo = "http://es.php.net/images/php_snow_2008.gif";
$recurso = @fopen($archivo, "r");
if ($recurso) {
while (!feof($recurso)) {
$lines[] = fgets($handle, 4096);
}
fclose($handle);
}
$d = file('destino','w');
foreach ($lines as $key => $line){
fwrite($d,$line);
}
fclose($recurso);
fclose($d);
No he probado el código por lo que es probable que no funcione. Pero a modo de ejemplo vale para hacerse una idea de como hacer un stream para obtener ficheros de webs y guardarlos localmente.
La función usa la estructura $_FILES por lo que se presume que esa función solo va a funcionar si los datos del fichero vienen de un formulario con un campo de tipo file.
Por motivos de seguridad los formularios solo envían el nombre del fichero.
Actualmente la función file() de php soporta varios tipos de protocolos, como por ejemplo http por lo que es igual de válido realizar estas dos formas para leer un fichero.
file ('/files/ejemplo.gif');
file ('http://host/files/ejemplo.gif');
Lo que hay que hacer es lo mismo que cuando hacemos un stream para descargar ficheros. Leer el fichero y escribirlo en nuestra ubicación.
$archivo = "http://es.php.net/images/php_snow_2008.gif";
$recurso = @fopen($archivo, "r");
if ($recurso) {
while (!feof($recurso)) {
$lines[] = fgets($handle, 4096);
}
fclose($handle);
}
$d = file('destino','w');
foreach ($lines as $key => $line){
fwrite($d,$line);
}
fclose($recurso);
fclose($d);
No he probado el código por lo que es probable que no funcione. Pero a modo de ejemplo vale para hacerse una idea de como hacer un stream para obtener ficheros de webs y guardarlos localmente.