Descargar Fichero de URL en PHP [SOLUCIONADO]

Descargar archivos a través de URL en PHP

El lenguaje de programación PHP ofrece numerosas funcionalidades y una de ellas es la posibilidad de descargar archivos de Internet a través de URLs. Esta funcionalidad puede ser especialmente útil en muchas situaciones, como la creación de un gestor de descargas, la recopilación de datos para el análisis web o el scraping web.

Funciones básicas para descargar archivos en PHP

Antes de sumergirnos en codigo, necesitamos entender algunas funciones básicas de PHP que nos permitirán manejar archivos y descargarlos.

file_get_contents: Esta función de PHP se usa para leer un archivo en un string. Puede leer tanto archivos locales como archivos de una URL. Es la función más utilizada al trabajar con archivos URL en PHP.

fopen y fclose: Estas dos funciones se usan para abrir y cerrar un archivo respectivamente. fopen() abre un recurso de archivo, que luego puede ser manipulado con otras funciones, como fread() y fwrite(). fclose() simplemente cierra el recurso de archivo. Son esenciales cuando trabajamos con archivos en PHP.

Cómo descargar un archivo de una URL con PHP

Ahora que estamos familiarizados con las funciones de PHP para el manejo de archivos, podemos proceder a escribir nuestro código para descargar un archivo de una URL.

$url = 'http://example.com/file.zip'; // URL del archivo que deseamos descargar
$destination = 'downloads/file.zip'; // Lugar donde queremos guardar el archivo

$file = fopen($url, 'r'); // Abrimos el archivo para leerlo
$newFile = fopen($destination, 'w'); // Abrimos (o creamos) el nuevo archivo para escribir en él

while(!feof($file)) // Mientras no se llegue al final del archivo
{
 $content = fread($file, 8192); // Leemos el contenido (limitado a 8192 bytes)
 fwrite($newFile, $content); // Escribimos el contenido en el nuevo archivo
}

fclose($file); // Cerramos el archivo original
fclose($newFile); // Cerramos el nuevo archivo

Este código descarga el archivo en la URL especificada y lo guarda en la ubicación de destino. Es un código sencillo, pero es la base de cualquier programa de descarga de archivos en PHP.

Manejar errores al descargar archivos en PHP

Al trabajar con descargas de archivos, siempre es una buena idea manejar los posibles errores para evitar problemas innecesarios. En PHP, una forma común de manejar los errores es utilizando la función try-catch, que permite “capturar” errores y manejarlos adecuadamente.

try {
    $file = fopen($url, 'r');
    if($file === FALSE) {
        throw new Exception('Error al abrir el archivo de la URL');
    }
    $newFile = fopen($destination, 'w');
    while(!feof($file)) {
        $content = fread($file, 8192);
        fwrite($newFile, $content);
    }
    fclose($file);
    fclose($newFile);
} catch(Exception $e) {
    echo 'Excepción capturada: ',  $e->getMessage(), "n";
}

Gracias por leer este artículo acerca de cómo manipular y descargar archivos URL con PHP

El uso de estas funciones para la manipulación de archivos y descargas a través de URL es una parte esencial de la programación en PHP y es un recurso que todo desarrollador debería conocer y entender. Esperamos que este tutorial haya sido útil para entender cómo funciona y cómo se puede implementar en sus propios proyectos.

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Más información
Privacidad