Disposición de contenido: ¿Cuáles son las diferencias entre "en línea" y "apego"?

245

¿Cuáles son las diferencias entre

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

y

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

No sé las diferencias, porque cuando uso uno u otro siempre recibo un mensaje de ventana que me pide que descargue el archivo para ambos. Leí las especificaciones, pero no tiene idea.

Cleiton
fuente
1
Cuando el tipo de disposición está en línea, normalmente no tiene un nombre de archivo.
james.garriss
Solo para la información de cualquier persona: el nombre de archivo todavía se puede configurar en línea, aunque no es estándar. Chrome, Firefox, IE y Opera respetan el nombre del archivo, pero Edge no (2018).
bugybunny
¿Alguien sabe de un recurso para mostrar lo que hacen los distintos navegadores con el tipo de contenido, similar a caniuse para CSS?
jmoreno

Respuestas:

291

Porque cuando uso uno u otro, aparece un mensaje en la ventana que me pide que descargue el archivo para ambos.

Este comportamiento depende del navegador y el archivo que está tratando de servir. Con inline, 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 lo obligará a descargar.

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

jimyi
fuente
77
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 los archivos adjuntos y simplemente la mostrarán en el navegador si pueden identificar correctamente el tipo de contenido.
mixdev
31

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

Con el archivo adjunto, irá inmediatamente al usuario y no intentará cargarlo en el navegador, ya sea que pueda o no.

Cullen Walsh
fuente
10

También vale la pena mencionar que en línea intentará abrir documentos de Office (xls, doc, etc.) directamente desde el servidor, lo que podría conducir a una solicitud 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 trató de entregar un Informe Excel de SSRS a través de ASP.Net -> al usuario siempre se le pedía que ingresara las credenciales. Después de hacer clic en cancelar en el mensaje, se abrirá de todos modos ...

Si la Disposición de 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.

pastrami01
fuente