Código PHP:
function descargar_archivos($url_descargar,$nombre_nuevo,$nombre_imagen,$tamano_archivo_guardado)
{
if (@fopen($url_descargar, "r"))
{
if($nombre_nuevo==NULL)
{
$titulo_archivo="Vacio_".$nombre_nuevo;
}
else// contiene titulo
{
$titulo_archivo=$nombre_nuevo;
}
// carpeta con permisos 777
$carpeta_destino="descargas_imagenes/$titulo_archivo";
$tamano_a_descargar=filesize($carpeta_destino); // Checa el tamano del archivo
if($tamano_archivo_guardado==$tamano_a_descargar AND !empty($tamano_archivo_guardado))
{
}
else
{
// Preparativos
$url_descargar = str_replace(' ', '%20', html_entity_decode($url_descargar)); // dando formato a url
if (file_exists($carpeta_destino))
{
chmod($carpeta_destino, 0777);
} // añadir permiso de escritura
// Inicia transferencia
if (($rh = fopen($url_descargar, 'rb')) === FALSE)
{
return false;
} // fopen() handles
if (($wh = fopen($carpeta_destino, 'wb')) === FALSE)
{
return false;
} // mensajes de error.
while (!feof($rh))
{
// incapaz de escribir en el archivo, posiblemente debido a que el disco duro esta lleno
if (fwrite($wh, fread($rh, 1024)) === FALSE)
{
fclose($rh);
fclose($wh);
return false;
}
}
// Terminado sin errores
fclose($rh);
fclose($wh);
@chmod($carpeta_destino, 0777);
echo"<p>";
//echo "Tamano de archivo a descargar = $tamano_a_descargar<br>";
//echo "Tamano de archivo guardado = $tamano_archivo_guardado<br>";
echo "URL= $url_descargar<br>";
// echo "Guardado como = $nombre_nuevo<br>";
echo "imagen= $nombre_imagen<br><br>";
echo "</p>";
}
}
else
{
echo"<p>
<font size='2' color='red'><b>No se pudo abrir o no existe la URL, favor de checarlo<br> ";
echo" URL = $url_descargar <br>";
echo" Imagen= $nombre_imagen </b></font></p>";
}
}
conectar();
$query="SELECT *";
$query.=" FROM tabla_imagenes";
$query.=" ORDER BY id DESC";
$query=mysql_query($query) or die(mysql_error());
$total=mysql_num_rows($query);
if($total==0)
{
echo"<p><label for='id_imagenes' class='left'>Imagenes:</label>";
echo "No hay imagenes para actualizar";
echo "</p>";
}
else
{
echo"<p><label for='id_imagenes' class='left'>Imagenes:</label></p>";
while ($rs = mysql_fetch_array($query))
{
$url_descargar=trim($rs[URL_descarga]);
$nombre_nuevo = basename($url_descargar);
$nombre_imagen=trim(htmlentities($rs[nombre_imagen]));
$archivo_guardado="descargas_imagenes/$nombre_nuevo";
$tamano_archivo_guardado=filesize($archivo_guardado);
descargar_archivos($url_descargar,$nombre_nuevo,$nombre_imagen,$tamano_archivo_guardado);
}
echo"<p><font size='2' color='green'><b>Actualizacion Finalizada</b></font></p>";
}
Aqui tienes un ejemplo de la funcion que utilizo yo para descargar archivos desde un dominio hacia una carpeta de mi servidor, los archivos que descargo me se los nombres y los registro en la base de datos.
Echale un ojo al codigo y te servira
saludos...