Контент-расположение. В чем разница между «встроенным» и «вложением»?

245

Каковы различия между

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

и

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

Я не знаю различий, потому что, когда я использую то или иное, я всегда получаю окно с предложением загрузить файл для них обоих. Я читал спецификации, но это бессмысленно.

Клейтон
источник
1
Когда тип расположения является встроенным, у него обычно нет имени файла.
james.garriss
Просто для чьей-либо информации: имя файла все еще может быть установлено со встроенным, хотя это не стандартно. Chrome, Firefox, IE и Opera уважают имя файла, а Edge - нет (2018).
Bugybunny
Кто-нибудь знает о ресурсе для показа, что различные браузеры делают с типом контента, похожим на caniuse для css?
Jmoreno

Ответы:

291

Потому что, когда я использую тот или иной, я получаю окно с предложением загрузить файл для них обоих.

Это поведение зависит от браузера и файла, который вы пытаетесь обслуживать. Со встроенным браузер попытается открыть файл в браузере.

Например, если у вас есть файл PDF и Firefox / Adobe Reader, встроенное расположение откроет PDF в Firefox, а вложение заставит его загрузить.

Если вы отправляете файл .ZIP, браузеры не смогут отображать его встроенным образом, поэтому для размещения встроенных файлов и вложений файл будет загружен.

jimyi
источник
7
Просто быстрое исправление: это поведение иногда отличается от мобильного контекста. Многие веб-просмотры приложений игнорируют расположение вложений и просто отображают его в браузере, если могут правильно определить тип содержимого.
mixdev
31

Если он встроен, браузер должен попытаться отобразить его в окне браузера. Если это невозможно, он прибегнет к внешней программе, запрашивая пользователя.

С вложением он сразу перейдет к пользователю, и не будет пытаться загрузить его в браузер, может это или нет.

Каллен Уолш
источник
10

Также стоит упомянуть, что inline попытается открыть документы Office (xls, doc и т. Д.) Непосредственно с сервера, что может привести к запросу на ввод учетных данных пользователя.

см эту ссылку:

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

кто-то пытался доставить отчет Excel из SSRS через ASP.Net -> пользователю всегда предлагалось ввести учетные данные. После нажатия кнопки «Отмена» в приглашении оно все равно будет открыто ...

Если расположение содержимого помечено как вложение, оно будет автоматически сохранено во временную папку после нажатия кнопки «Открыть», а затем открыто в Excel из локальной копии.

pastrami01
источник