簡體   English   中英

Content-Disposition標頭,以允許下載和打開文件

[英]Content-Disposition headers to allow both download and open file

我有一些文件,希望人們能夠按他們的意願下載或在瀏覽器中查看。 我無法弄清楚如何簡單地做到這一點,在主機中設置標頭或執行一些JavaScript魔術。

最終結果應該是一個html頁面,其中列出了每個文件2個鏈接,一個鏈接在新標簽頁中打開,一個下載文件。 我可以選擇一個,或者另一個,但不能同時工作。

我嘗試了兩個Content-Disposition選項,它們都可以但不能同時使用。 我嘗試了chrome.downloads api,但在普通的html腳本中不可用。 我試過了,但是它下載的是帶有鏈接本身的文本文件,而不是文件內容。 download屬性被忽略,而使用Content-Disposition標頭,並且默認為inline,因此即使未設置為強制打開,也不允許下載。

Content-Disposition: inline
Content-Disposition: attachment
<a href="test.txt" download="text.txt" target="_blank">

誰能發現我在做什么錯?

Content-Disposition標頭需要由服務器發送,並且我相信在您的情況下,它只能在響應中給定文件出現一次(在您的情況下,您僅發送一個文件,而不是包含多個文件的多部分形式數據)文件)。 畢竟,這是對用戶代理的建議,它應該如何處理該文件。 要實現鏈接,您將需要兩個單獨的URL(如果有服務器端腳本,則區別可以是查詢字符串):一個提供Content-Disposition: inline響應,另一個提供Content-Disposition: attachment; filename="text.txt" Content-Disposition: attachment; filename="text.txt"響應。 只要您這樣做,鏈接就可以在任何現代瀏覽器中正常工作。

令人遺憾的是,似乎沒有任何方法可以僅使用標頭來執行此操作,我將需要涉及一些腳本編寫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM