如何为已知的 MIME 类型激活“文件下载”对话框

不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。
概要
在使用来自 Web 服务器的文档时,您可能希望立即提示用户将文件直接保存在用户磁盘上,而不要在浏览器中打开该文件。不过,对于已知的 MIME(多用途 Internet 邮件扩展)类型,如 Microsoft Word ("application/ms-word"),默认行为是在 Internet Explorer 中打开文档。

您可以使用 Content-disposition 头来覆盖此默认行为。其格式是:
Content-disposition: attachment; filename=fname.ext				
更多信息
Content-disposition 是 MIME 协议的扩展,MIME 协议指示 MIME 用户代理如何显示附加的文件。Content-disposition 的有效值范围在征求意见文档 (RFC) 1806 中讨论(参见本文的“参考”一节)。本文重点讨论“附件”问题,指示用户代理(在本文中,指 Internet Explorer)将文件保存到磁盘,不在内联保存它。

当 Internet Explorer 接收到头时,它会激活文件下载对话框,它的文件名框自动填充了头中指定的文件名。(请注意,这是设计导致的;无法使用此功能将文档保存到用户的计算机上,而不向用户询问保存位置。)

有两种使用 Internet Explorer 来为文件指定 Content-disposition 头的方法:动态和静态。

要动态应用头,请创建一个将文档写出到浏览器的 Active Server Pages (ASP) 文件。使用 Response.AddHeader 方法来添加 Content-disposition 头。例如:
Response.AddHeader "content-disposition","attachment; filename=fname.ext"				
下面的 Microsoft 知识库文章提供了有关如何为非文本文档执行二进制编写的说明:
193998 如何在 ASP 中读取和显示二进制数据
如果您要保护服务器上的文档存储区,尤其是 Web 根外部的文档存储区,则此方法是最佳的。

要静态应用头,请在 Internet Service Manager 中右键单击文档,然后选择属性。选择 HTTP 头选项卡,然后在这里输入 Content-disposition 头。如果您只希望对系统上的一些文件应用 Content-disposition 且不要求使用 ASP,则此方法是最佳的。

请注意,此解决方案不适用于 Internet Explorer 4.01,会产生错误。 有关其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
182315FIX:Content-Disposition:不强制出现“文件下载”对话框
参考
有关 Content-disposition 的更多信息,请参见以下 Internet 工程任务组 (IETF) 网站上的征求意见文档 (RFC) 1806:有关为 Microsoft Internet Explorer 开发基于 Web 的解决方案的更多信息,请访问下面的 Microsoft 网站:
content-disposition
属性

文章 ID:260519 - 上次审阅时间:12/25/2006 09:07:49 - 修订版本: 3.4

Microsoft Internet Explorer 5.0, Microsoft Internet Explorer 5.01, Microsoft Internet Explorer 5.5

  • kbhowto kbnavigation KB260519
反馈