1

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

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

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

4

2 回答 2

5

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

X-Content-Type-Options: nosniff

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

来源

于 2009-09-10T15:20:16.013 回答
1

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

Header("Content-Type: text/plain");
Header("Content-Disposition: inline; filename=\"whatever.txt\"");
于 2010-11-05T14:32:00.797 回答