Content-Disposition: Каковы различия между "inline" и "attachment"?

В чем разница между

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

и

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

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

Ответ 1

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

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

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

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

Ответ 2

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

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

Ответ 3

Можно также отметить, что inline попытается открыть Office Documents (xls, doc и т.д.) непосредственно с сервера, что может привести к запросу User Credentials.

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

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

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

Если Content Disposition помечен как Attachment, он автоматически будет сохранен в папке temp после нажатия кнопки "Открыть" и затем откроется в Excel из локальной копии.