【问题标题】:Stop IE8 from opening or downloading a text/plain MIME type阻止 IE8 打开或下载 text/plain MIME 类型
【发布时间】:2010-11-27 05:06:10
【问题描述】:

我在 PHP 中动态生成一个文本文件,因此它具有 .php 扩展名,但具有 text/plain MIME 类型。除 IE8 外,所有浏览器都将文件显示为预先格式化好的文本。

谷歌搜索告诉我他们已经增加了安全性,如果 HTTP 标头内容类型与预期的内容类型不匹配(我认为基于扩展名和一些嗅探),它会强制下载文件。就我而言,我必须打开它,并允许它打开我刚刚告诉它打开的文件!不过,这可能是Win7的烦恼。当然,提供静态纯文本文件可以正常工作。

那么我可以阻止 IE8 下载文件并让它正常查看吗?该代码必须在多个共享托管环境上运行,所以我认为我被 .php 扩展名卡住了。

【问题讨论】:

    标签: text internet-explorer-8 types mime


    【解决方案1】:

    将此添加到您的 HTTP 标头中:

    X-Content-Type-Options: nosniff
    

    选择退出 MIME 嗅探是 IE8 的一项功能。

    Source

    【讨论】:

    • 从文章中看起来很有希望,但恐怕没有什么不同!
    • 您是否有理由必须提供文本/纯文本?你能提供 HTML 格式并使用 <pre></pre> 格式化文本吗?
    • 我收回了,6 小时后,标题魔法开始起作用了。一定是通常的过度热情的缓存!
    【解决方案2】:

    或者,您可以“欺骗”IE8,使其认为它确实在提供文本文件。这两行是为我做的,不涉及使用非标准化的“X-”标题:

    Header("Content-Type: text/plain");
    Header("Content-Disposition: inline; filename=\"whatever.txt\"");
    

    【讨论】:

      猜你喜欢
      • 2012-03-23
      • 2012-06-02
      • 2018-09-01
      • 2013-12-24
      • 2019-09-13
      • 2016-08-30
      • 2022-11-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多