2009-09-08 21 views
206

¿Cuáles son las diferencias entreContent-Disposition: ¿Cuáles son las diferencias entre "en línea" y "archivo adjunto"?

Response.AddHeader("Content-Disposition", "attachment;filename=somefile.ext") 

y

Response.AddHeader("Content-Disposition", "inline;filename=somefile.ext") 

que no conozco las diferencias, porque cuando uso una u otra siempre me dan una pronta ventana que me pide que descargue el archivo para ambos. Leí las especificaciones, pero no tiene idea.

+1

Cuando el tipo de disposición está en línea, normalmente no tiene un nombre de archivo. –

Respuesta

251

Porque cuando uso una u otra me consigo un indicador de la ventana que me pide que descarga el archivo para ambos.

Depende del comportamiento del navegador y del archivo que está tratando de publicar. Con en línea, el navegador intentará abrir el archivo dentro del navegador.

Por ejemplo, si tiene un archivo PDF y Firefox/Adobe Reader, una disposición en línea abrirá el PDF dentro de Firefox, mientras que el archivo adjunto obligará a descargarlo.

Si está publicando un archivo .ZIP, los navegadores no podrán mostrarlo en línea, por lo tanto, para las disposiciones en línea y adjuntas, se descargará el archivo.

+0

@jimyi, gracias. Tu respuesta fue muy completa. – Cleiton

+3

Solo una corrección rápida: este comportamiento a veces es diferente de un contexto móvil. Muchas vistas web de aplicaciones ignorarán la disposición de archivos adjuntos y simplemente las renderizarán en el navegador si pueden identificar correctamente el tipo de contenido. – mixdev

27

Si está en línea, el navegador debe intentar renderizarlo dentro de la ventana del navegador. Si no puede, recurrirá a un programa externo, lo que provocará al usuario.

Con el archivo adjunto, irá inmediatamente al usuario, y no intentará cargarlo en el navegador, si puede o no.

8

También podría valer la pena mencionar que inline intentará abrir documentos de Office (xls, doc etc.) directamente desde el servidor, lo que podría llevar a una Petición de credenciales de usuario.

ver este enlace:

http://forums.asp.net/t/1885657.aspx/1?Access+the+SSRS+Report+in+excel+format+on+server

alguien intentó entregar un informe de Excel desde SSRS a través de ASP.Net -> el usuario siempre consiguió pedirá que introduzca las credenciales. Después de hacer clic en cancelar en el indicador, se abrirá de todos modos ...

Si la Disposición del contenido está marcada como Adjunto, se guardará automáticamente en la carpeta temporal después de hacer clic en abrir y luego abrir en Excel desde la copia local.

Cuestiones relacionadas