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 из локальной копии.