如何调出已知 MIME 类型的文件下载对话框

警告

已停用、不受支持的 Internet Explorer 11 桌面应用程序在某些版本的 Windows 10 上已通过 Microsoft Edge 更新永久禁用。 有关详细信息,请参阅 Internet Explorer 11 桌面应用停用常见问题解答

本文提供有关如何在 Microsoft Edge 和 Internet Explorer 中为已知 MIME 类型引发 文件下载 对话框的信息。

原始产品版本: Internet Explorer 11、Internet Explorer 10、Internet Explorer 8、Internet Explorer 7、Microsoft Edge
原始 KB 数: 260519

总结

从 Web 服务器提供文档时,可能需要立即提示用户将文件直接保存到用户的磁盘,而无需在浏览器中打开它。 但是,对于已知的 MIME(多用途 Internet 邮件扩展)类型(如 Microsoft Word(application/ms-word),默认行为是在 Internet Explorer 中打开文档。

可以使用内容处置标头替代此默认行为。 其格式为:

Content-disposition: attachment; filename=fname.ext

详细信息

Content-disposition 是 MIME 协议的扩展,用于指示 MIME 用户代理如何显示附加文件。 注释请求 (RFC) 1806 中讨论了有效值 content-disposition 的范围(请参阅 本文的“参考” 部分)。 本文重点介绍附件参数,该参数指示用户代理(在本例中为 Internet Explorer)将文件保存到磁盘,而不是将其内联保存。

Internet Explorer 收到标头时,会引发文件 下载 对话框,该对话框的文件名框会自动填充标头中指定的文件名。 请注意,这是设计造成的;没有办法使用此功能将文档保存到用户的计算机,而无需提示保存位置。

可通过两种方法使用 Internet Explorer 为文件指定 content-disposition 标头:动态和静态。

若要动态应用标头,请创建一个将文档写入浏览器的活动服务器页面(ASP)文件。 使用Response.AddHeader方法来添加content-disposition标头。 例如:

Response.AddHeader "content-disposition","attachment; filename=fname.ext"

如果要保护服务器上的文档存储区,尤其是位于 Web 根外部的文档存储区,此方法是理想的方法。

若要静态应用标头,请右键单击 Internet Service Manager 中的文档,然后选择“属性”。 选择“HTTP 标头”选项卡,并在其中输入content-disposition标头。 当你只想将 content-disposition 应用于系统上的少数文件且不需要 ASP 的开销时,这种方法最为有效。

参考

有关content-disposition的更多信息,请参阅征求意见稿 (RFC) 1806