2009-09-10 45 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\""); 
相關問題