Enviar archivos al navegador del cliente

Published Sun, Nov 7 2004 22:32

Para mandar el contenido de un archivo al browser o navegador del cliente, y presentarle el cuado de diálogo si desea abrir, guardar o cancelar este archivo, se debe cumplir lo siguiente:

Construir una página sin código html. Esto es muy importante ya que cuando se envíe el contenido del archivo, no debe haberse enviado código html ya que la mezcla de estos (el código y el archivo) hará que el navegador del usuario no entienda bien el contenido.

En el código fuente de esta página, agregar las siguientes líneas (los números son sólo de referencia)

1.- Response.ClearHeaders();

2.- Response.ClearContent();

3.- Response.AddHeader("Content-Disposition", "attachment;filename=NOMBRE_DEL_ARCHIVO");

4.- Response.ContentType = "application/pdf";

5.- Response.BinaryWrite(ARREGLO_DE_BYTES_CON_EL_CONTENIDO_DEL_ARCHIVO);

6.- Response.Flush();

7.- Response.Close();

En este caso, las líneas 1 y 2 limpian el buffer que se haya llenado con información que no corresponde al archivo. Esto es necesario si en algún momento antes de haber llegado a estas líneas, se hizo algún response.write.

Las líneas 3 y 4 le dicen al navegador del cliente las instrucciones correspondientes al envío de un archivo llamado NOMBRE_DEL_ARCHIVO y del tipo que es. En este caso, se le especifica que es un pdf. Más abajo se desplegarán los tipos más comunes, y un link a una página muy completa con los tipos existentes.

La línea 5 escribe el arreglo de bytes del archivo en el cliente. Posteriormente entregaré una función para sacar un arreglo del bytes de un archivo.

Por último, las líneas 6 y 7 vacían el buffer y cierran el envío al cliente.

Un listado con algunos de los tipos MIME más comunes:

Texto Plano

text/plain

Imagen gif / jpg

image/gif o image/jpeg

Video Mpeg

video/mpeg

Postscript

application/postscript

Pdf

application/pdf

MS Powerpoint

application/mspowerpoint

MS Excel

application/vnd.ms-excel o application/ms-excel

La URL con muchos de los tipos MIME disponibles es:
http://www.utoronto.ca/webdocs/HTMLdocs/Book/Book-3ed/appb/mimetype.html

Patrick
Publicado, Noviembre 2004.
Revisado, Enero 2007.

by pmackay
Filed under:

Comments

# TrackBack said on Sunday, November 28, 2004 12:14 AM

Subject: RE: Descargar archivo de base de datos