Cada tanto necesitamos cosas así
<?php
/**
* Downloader
*
* @param $archivo
* path al archivo
* @param $downloadfilename
* (null|string) el nombre que queres usar para el archivo que se va a descargar.
* (si no lo especificas usa el nombre actual del archivo)
*
* @return file stream
*/
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;
}
}
Uso:
Si queres que el archivo se descargue con un nombre distinto al original.
<?php
download_file("archivos/archivoReal.zip", "archivoEnmascarado.zip");
Si queres que el archivo se descargue con el nombre original.
<?php
download_file("archivos/archivoReal.zip");
Gracias muy util!!! justo estaba buscando esto porque no podia hacerlo funcionar por mi cuenta.
Saludos!
El path pude ser un url externo. Estoy implementando en mi aplicación cloud file de rackspace y puedo obtener el path absoluto de un archivo pero enviando ese path a esta funcion me descarga el archivo pero me dice que pesa 0 bytes.
Me funcionó eliminando esta linea header(‘Content-Length: ‘ . filesize($archivo)); . gracias por el post lo necesitaba.
Muchas gracias, me sera muy util este tip para poder descargar un acceso directo a mi pagina web desde la misma. saludos !
eternamente agradecido!
Epale man te quedo fue bello ese codigo todo un master buena esa..!!!
Excelente código..! (usefull )
Hola, ya me canse de estar buscando, soy nuevo en la programacion de PHP y HTML y todo lo referente a web.
Necesito hacer que una de mis paginas sea descargable en PDF, me explico mejor.
Me refiero a que, por decirlo asi, entro a un link que me lleva a un formulario, ese formulario despues de haberlo
llenado, tenga al ultimo un boton que haga que lo que acabo de escribir, junto con todos los campos de informacion
se descarguen en formato PDF, no se si me explico.
Por ejemplo: que entre a Facebook, despues de haber escrito algo, me de la opcion de descargar una captura de pantalla por decirlo asi,
de lo que acabo de escribir junto con todo el contenido que tenga la pagina y que en ese momento estoy viendo, que de la alternativa de
poder guardarlo en mi ordenador y despues visualizarlo como pdf. encontre un condigo, pero no me funciona.
Me gustaria saber si alguien sabe de esto y como hacerlo
Podria ayudarte en tu problema, pero necesito mas detalles al respecto, un saludo desde México.
Entonces pregunta
Hola Giber, yo te sugiero que revises la documentación de http://www.fpdf.org, es una librería gratuita para PHP muy sencilla de utilizar y generas el PDF como tu quieras, que te lo muestre en vista previa para que tu lo imprimas o guardes, o bien, que solo aparezca un Dialogo donde te pide la ubicación para guardarlo.
Sería sencillo recibir a través de $_POST los campos del formulario y mandarlos como parámetro a tu generador del PDF, o que los almacenes en un array en una $_SESSION y de ahi los lea el generador del PDF y listo, no deberías tener problemas.
Saludos.
Hola, amigo lo estuve probando , pero el formato sale des configurado, el código que use es otro no este pero lo voy a probar , si puedes ayudarme escribeme a mi correo quiero descargar una lista de 20 archivos individuales en cualquier formato.
Espero tu ayuda, capy
Pedro
esta bueno pero quiero cuando yo le de clic en descargar no que se descarge solo al entrar a mi web
Excelente, Gracias por este post, mejoré mucho el sitio con esto!