内容配置:“内联”和“附件”有什么区别?


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

有谁知道一种资源来显示各种浏览器对内容类型的作用,类似于css的caniuse吗?
jmoreno

Answers:


291

因为当我使用一个或另一个时,会出现一个窗口提示,要求我为它们两个下载文件。

此行为取决于浏览器和您要提供服务的文件。使用内联时,浏览器将尝试在浏览器中打开文件。

例如,如果您具有PDF文件和Firefox / Adob​​e Reader,则内联处置将在Firefox中打开PDF,而附件将强制其下载。

如果您提供的是.ZIP文件,浏览器将无法内嵌显示,因此对于内联和附件处置,将下载该文件。


7
只是快速的更正:这种行为有时与移动环境有所不同。如果许多应用程序Webview能够正确识别内容类型,它们将忽略附件的处理方式,而只是在浏览器中呈现它们。
mixdev 2013年

31

如果是内联的,则浏览器应尝试在浏览器窗口中呈现它。如果不能,它将求助于外部程序,提示用户。

有了附件,它将立即转到用户手中,而不管尝试是否将其加载到浏览器中。


10

值得一提的是,内联会尝试直接从服务器打开Office文档(xls,doc等),这可能会导致用户凭据提示。

看到这个链接:

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

有人试图通过ASP.Net从SSRS传递Excel报告->总是提示用户输入凭据。在提示上单击“取消”后,它仍然会打开...

如果内容处置标记为附件,则在单击打开后将其自动保存到temp文件夹,然后从本地副本在Excel中将其打开。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.