Gracias
![Adios](http://static.forosdelweb.com/fdwtheme/images/smilies/adios.gif)
| |||
descargar archivos con php Tengo una duda, necesito incluir un link en mi pagina que me permita descargar un archivo. gif y .doc del servidor utilice un codigo que lo unico que me hizo fue que cuando cargara la pagina me la quisiera descargar, como puedo entrar a la pagina y mediante un enlace descargar el archivo? Gracias ![]() |
| |||
Código PHP: Fede |
| |||
Cita: No ..
Iniciado por lizalina entonces el codigo para el enlace que debo poner fuera de la cabecera osea dentro del codigo html es <a href="archivo.jpg">enlace</a> y nada mas? En tu caso .. ahora es tu script.php el que va hacer dos procesos: 1) montar las cabeceras HTTP adecuadas para iniciar la descarga del archivo. 2) leer tu archivo de donde esté y entregarlo al buffer de salida de PHP .. Todo eso ya lo hace el ejemplo de thunder.scripts .... Tu sólo debes llamar a ese script tipo: <a href="nose.php">bajar</a> Para hacerlo más versatil .. puedes usar variables de control para pasarle a ese script el archivo a bajar ... <a href="nose.php?archivo=nose.jpg">bajar nose.jpg</a> Y modificando el script mencionado ... $file = file($_GET['archivo']); ATENCIÓN: Debes validar ese $_GET['archivo'] para restringir que archivos serán los que se puedan forzar su descarga .. sino te harán algo tipo: nose.php?archivo=nose.php y te descargaran el código fuente PHP de algo que no tegustaría que lo hiciesen. Un saludo, |
| |||
$_GET['archivo'] según el ejemplo que puse .. contiene el nombre/ruta de un archivo que apunta en tu servidor .. eso para "PHP" es tan sólo una "cadena" (string) .. puedes validarlo de muchas formas .. Por ejemplo podrías tener un array con los nombres/rutas de archivos que se puedan "descargar" o bien los que no se puedan y limitar a cierto directorio ...(para que no te "suban" con un ../ o similar) Esto último con expresiones regulares podrías hacerlo .. Un saludo, |
| |||
ESTO ES LO QUE INCLUI <?php $file = file($_GET['BOLIVIA.JPG']); $file2 = implode("BOLIVIA.JPG", $file); header("Content-Type: application/octet-stream"); header("Content-Disposition: attachment; filename=archivo.jpg\r\n\r\n"); header("Content-Length: ".strlen($file2)."\n\n"); echo $file2; ?> CON EL ENLACE DENTRO DEL HTML <a href="BOLIVIA.JPG">enlace</a> y me da el siguiente o los siguientes errores Warning: file("") - No error in d:\archivos de programa\apache group\apache\htdocs\descarga.php on line 2 Warning: Bad arguments to implode() in d:\archivos de programa\apache group\apache\htdocs\descarga.php on line 3 Warning: Cannot add header information - headers already sent by (output started at d:\archivos de programa\apache group\apache\htdocs\descarga.php:2) in d:\archivos de programa\apache group\apache\htdocs\descarga.php on line 4 Warning: Cannot add header information - headers already sent by (output started at d:\archivos de programa\apache group\apache\htdocs\descarga.php:2) in d:\archivos de programa\apache group\apache\htdocs\descarga.php on line 5 Warning: Cannot add header information - headers already sent by (output started at d:\archivos de programa\apache group\apache\htdocs\descarga.php:2) in d:\archivos de programa\apache group\apache\htdocs\descarga.php on line 6 quisisera saber donde me equivoque, gracias |