Forzar descarga de archivos utilizando PHP

 In Cursos, Scripts Web, Tutoriales

No se si les ha pasado de intentar realizar un script para poder descargar archivos sin que se muestren por pantalla, forzar la descarga, y la verdad es me ha pasado y me he vuelto loco intentando encontrar ejemplos que funcionen, y la verdad es que me ha costado, por eso he realizado una combinación de todos los scripts que he encontrado y he decidio traeroslo. Aqui teneis el codigo PHP:

Función PHP:

function download_file($archivo, $downloadfilename = null) {
    if (file_exists($archivo)) {
        $downloadfilename = $downloadfilename !== null ? $downloadfilename : basename($archivo);
        header('Content-Description: File Transfer');
        header('Content-Type: application/octet-stream');
        header('Content-Disposition: attachment; filename=' . $downloadfilename);
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header('Content-Length: ' . filesize($archivo));
 
        ob_clean();
        flush();
        readfile($archivo);
        exit;
    }
}

Todo este codigo lo que hace es descargar el archivo que le indicamos, solo tenemos que llamar a la funcion, esto lo podemos hacer de dos formas, la primera es que solo descarge el archivo con el nombre que tiene y la segunda es que descarge el archivo cambiandole el nombre.

Primera forma, descargar el archivo sin cambiar el nombre:

download_file("ruta-al-archivo/archivo.zip");

Segunda forma, descargar el archivo con un nuevo nombre:

download_file("ruta-al-archivo/archivo.zip", "nuevo-nombre-archivo.zip");

Espero que les haya funcionado, les dejo el enlace de descarga de este script.

[sociallocker id=”745″]

Descargar “Codigo del script PHP Forzar descarga” force-download.zip – Descargado 35 veces – 587 B

[/sociallocker]
Recent Posts

Leave a Comment

Contactar

Si tiene alguna pregunta, envíenos un correo electrónico y nos pondremos en contacto con usted muy pronto.

Not readable? Change text. captcha txt
0