92

我在某些響應中返回流設置適當的內容類型標題。我在找的行爲是這樣的:如何在不強制saveas對話框的情況下設置響應文件名稱

  • 如果瀏覽器能夠呈現給定的內容類型的內容,那麼就應該在瀏覽器窗口中顯示。

  • 如果瀏覽器不知道如何呈現內容,那麼它應該顯示在文件名應該一個在響應中提供的另存爲對話框。

的問題,即如果我設置與內容處理標頭:

「附件;文件名=」 myfile.txt的 「」

瀏覽器將始終顯示savesas對話。

如果我不設置內容部署在另存爲對話框中使用的文件名是一個在不以我爲例工作的URL。

我也嘗試設置內聯處理內聯,但結果是一樣的。

回答

128

正確的方法可能是:

Content-Disposition: inline; filename="myfile.txt"

+6

我不知道你說「不被廣泛支持」回來的意思,當你寫了這個答案,希望你能給出確鑿的事實,而不是FUD 。我剛剛在IE 6,IE 8,現代Chrome和現代Firefox中進行了測試,它可以在所有這些工具中使用;據我所知,現在使用它是完全安全的。 –

+0

不適用於我的FireFox 37.0.2和Internet Explorer 11.0.18。我會看到另存爲對話框。 Chrome雖然工作。 – angularsen

+2

實際上,它在Firefox 37.0.2和IE 11.0.18上都能正常工作(剛剛測試過)。您可能正在使用您的瀏覽器無法內聯顯示的Content-Type。 – Patonza

3

我不確定這是可能的默認情況下。出於安全考慮,瀏覽器不會發送它可以處理的所有內容類型,但只有幾個Accept-Encoding,這在你的場景中幫助不大。

也許你可以問問你的用戶他/她喜歡什麼,並存儲在他們的個人資料信息。

相關問題