[PHP-ES] Re: Descarga de Ficheros

From: Javier Martín Ávila ( eljavi2k .en. hotmail.com)
Date: Mon Apr 12 2004 - 23:49:32 CEST


Si lo que quieres es que una página PHP (o ASP, ASP.NET, Perl, JSP, etc.) te
redirija a ese archivo, simplementa manda una cabecera "Location" con el
nombre del archivo. Si por el contrario, quieres que la página abra un
archivo y lo mande al cliente SIN que este sepa su dirección, puedes mandar
la cabecera "Content-Disposition" con el contenido "attachment; filename="
mas el nombre del archivo y después abrir el archivo y enviarlo mediante la
propia página. También puedes enviar la cabecera "Content-Type" con el tipo
MIME del archivo, como "application/msaccess" para una base de datos de
Access, "application/octet-stream" para ejecutables o archivos binarios en
general y "text/html" para una página HTML. Ten en cuenta que usando este
método, los archivos siempre se descargarán, es decir, el navegador no
intentará abrirlos ni siquiera si son HTML. Para más inri, también deberías
mandar la cabecera "Content-Length" con el tamaño del archivo.

Así que los pasos son:

1.- Cabecera "Content-Type" con el tipo MIME del archivo, deducido por
ejemplo de su extensión (o "application/octet-stream" para binarios
genéricos)
2.- Cabecera "Content-Length" con el tamaño del archivo
3.- Cabecera "Content-Disposition" con el contenido "attachment; filename="
más el nombre del archivo en cuestión
4.- Los datos del propio archivo

Así que, por ejemplo, al pedir una imagen GIF, el asunto quedaría así:

(cliente)
GET /php/descargar_archivo.php?nombreArchivo=modificar.gif HTTP/1.1

(servidor)
HTTP/1.1 200 OK
X-Powered-By: PHP 4.3.5
Content-Length: 864
Content-Type: image/gif
Content-Disposition: attachment; filename=modificar.gif

GIF89a ÷ ? ? ?? ?? ? ??ÀÀÀÀÜÀ¦Êð .en. ` ? À à .en. .en. .en. .en. ` .en. ? .en.
.en. À .en. à .en. ` ` .en. ` `` ?` ` À` à` ? ? .en. ? `? ?? ? À? à? .en. ` ? À
à À À .en. À `À ?À À ÀÀ àÀ à à .en. à `à ?à à Àà àà .en. .en. .en. .en. ` .en. ? .en. .en. À .en. à .en.
.en. .en. .en. .en. ` .en. ? .en. .en. À .en. à .en. .en. .en. .en. .en. .en. .en. .en. ` .en. .en. ? .en. .en. .en. .en. À .en. .en. à .en. .en. ` .en. ` .en. .en. ` .en. `` .en. ?` .en. ` .en. À` .en. à` .en. ? .en.
? .en. .en. ? .en. `? .en. ?? .en. ? .en. À? .en. à? .en. .en. .en. .en. .en. ` .en. ? .en. .en. À .en. à .en. À .en. À .en. .en. À .en. `À .en. ?À .en. À .en. ÀÀ .en. àÀ .en. à .en.
à .en. .en. à .en. `à .en. ?à .en. à .en. Àà .en. àà .en. ? ? .en. ?` ?? ? ?À ?à ? ? ? .en. ?` ?? ? ?À ?à ? .en. ?
.en. ? .en. .en. ?` .en. ?? .en. ? .en. ?À .en. ?à .en. ? `? `? .en. `?``??`? `?À`?à`? ?? ?? .en. ??`????? ??À??à?? ? ? .en.
?` ?? ? ?À ?à ? À? À? .en. À?`À??À? À?ÀÀ?àÀ? à? à? .en. à?`à??à? à?Àà?àà? À À .en. À`
À? À ÀÀ Àà À À À .en. À` À? À ÀÀ Àà À .en. À .en. À .en. .en. À` .en. À? .en. À .en. ÀÀ .en. Àà .en. À `À `À .en. `À``À?`À
`ÀÀ`Àà`À ?À ?À .en. ?À`?À??À ?ÀÀ?Àà?À À À .en. À` À? À ÀÀ Àà À ÀÀ ÀÀ .en. ÀÀ`ÀÀ?ÀÀ
ÀÀÿûð ¤???ÿÿÿ ÿ ÿÿ ÿÿ ÿ ÿÿÿÿÿ!ù ù , .en. = ó Apÿ <X .en. ¾?
#>"oÃ?ÿ,^,¨qáE?!?üX"I"HfL9 Ê!z"90 ;

Ahora mismo no tengo disponible un código en PHP para demostrártelo, pero
puedo preparártelo en un par de días si me lo pides. Que aproveche

>------Habbit------>
----------------------------------------------------------------------------
-----------------------------------------------------------------------
"Yoviel Rodriguez Cepero" < Yoviel .en. uclv.edu.cu> escribió en el mensaje
news:0B9CB2EB85BCD64DAFE8FA632AA72F91029116 .en. mail-01.uclv.edu.cu...
Hola lista, quisiera saber si hay alguna manera de hacer que al pinchar un
boton se mande a descargar un fichero determinado. Pudiera ser un simple
codigo de formularios o codigo de php.

Atte. Yoviel

-- 
PHP Spanish Localization Talk Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


This archive was generated by hypermail 2.1.7 : Fri May 14 2004 - 16:04:47 CEST