2009-09-10 49 views
1

我在PHP中动态生成文本文件,因此它具有.php扩展名,但是文本/普通MIME类型。除IE8外,所有浏览器都将文件显示为格式良好的文本。停止打开或下载文本/普通MIME类型的IE8

谷歌搜索告诉我,他们已经增加了安全性,如果HTTP标头内容类型不符合预期的内容类型(我认为基于扩展和一些嗅探),那么它会强制文件被下载。在我的情况下,我必须打开它,并且还允许它打开我刚才告诉它打开的文件!虽然这可能是一个Win7的烦恼。当然,提供静态纯文本文件效果很好。

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

回答

5

添加到您的HTTP标头:

X-Content-Type-Options: nosniff 

这是一个IE8的功能来选择退出的MIME嗅探的。

Source

+0

看起来很有前途的文章,但它没有改变我害怕! – 2009-09-10 15:29:49

+0

你有没有理由为文本/纯文本提供服务?您能否提供HTML并使用'

'格式化文本? –
                        
                            
    jimyi
                                2009-09-10 19:13:22
                            
                        
                    

+1

我收回,6小时后,标题魔术正在工作。一定是过度热情的缓存! – 2009-09-10 22:05:30

1

或者,你可以“欺骗” IE8以为这的确是服务了一个文本文件。这2条线对我来说并不涉及使用非标准化的“X-”头:

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