2008-10-09 22 views
16

我需要將文件流式傳輸到Response以保存在最終用戶的機器上。該文件是純文本,所以我可以使用哪些內容類型來防止文本在瀏覽器中顯示?什麼內容類型強制下載文字回覆?

+0

相關閱讀:[我需要的內容類型:應用程序/八位字節流的文件下載? ](http://stackoverflow.com/q/20508788/95735) – 2016-01-30 20:24:11

回答

21

爲了安全起見,確保在所有瀏覽器一致的行爲,它通常是更好地使用這兩種:

Content-Type: application/octet-stream 
Content-Disposition: attachment;filename=\"My Text File.txt\" 
6

我不認爲它的工作方式。

使用Content-Disposition: attachment表頭,但堅持正確的內容類型。

+0

只有當User-Agent是Internet Explorer 6時才發送`Content-Type:application/octet-stream` ... – 2014-06-18 09:52:38

23

在大多數情況下,下面應該工作:

Content-type: application/octet-stream 
Content-Disposition: attachment; filename="myfile.txt" 

有瀏覽器,它仍然顯示爲文本文件的一些邊緣的情況下,但沒有主流瀏覽器會(我說的嵌入在某些MID中的瀏覽器)。


編輯:當這個答案最初發表,發送MIME類型application/octet-stream是引起一些瀏覽器下載的唯一可靠方法。現在在2016年,如果您不需要支持古老的瀏覽器,則可以安全地指定適當的MIME類型。

+0

您是否需要說謊內容-類型?如果你可以使用Content-Disposition,它應該更好,它應該工作。 – 2008-10-09 11:55:46

+0

根據我的經驗,application/octet-stream使得它可以在所有瀏覽器中更可靠地工作。 – ceejayoz 2008-10-09 12:01:57