我需要一個HTML頁面中的鏈接,它可以使用任何JavaScript來「開始下載」我的網絡服務器上的普通網頁/文件,文件類型如PDF/ZIP或簡單地輸出PHP/ASP/HTML。從網絡服務器下載任何文件類型
我知道這是可能的一些服務器端下載腳本,返回mime_content_type,所以瀏覽器根據其配置處理它。 (通常是下載),但我真的很喜歡只有JavaScript的解決方案。有任何想法嗎?
我需要一個HTML頁面中的鏈接,它可以使用任何JavaScript來「開始下載」我的網絡服務器上的普通網頁/文件,文件類型如PDF/ZIP或簡單地輸出PHP/ASP/HTML。從網絡服務器下載任何文件類型
我知道這是可能的一些服務器端下載腳本,返回mime_content_type,所以瀏覽器根據其配置處理它。 (通常是下載),但我真的很喜歡只有JavaScript的解決方案。有任何想法嗎?
如果要強制瀏覽器顯示另存爲對話框中我使用了以下標題:
Content-type: application/octet-stream
Content-Transfer-Encoding: binary
Content-disposition: attachment; filename=test.pdf
你根本無法在javascript中這樣做,因爲你需要改變MIME類型頭。你可以做的最好的做法是使用open('url')在另一個窗口中打開它,但我認爲這不符合你的需求,並可能被彈出窗口攔截器阻止。
IE瀏覽器可以通過execCommand()調用 – 2009-06-21 18:31:39
這樣做如果你只針對IE用戶,你可以使用類似這樣的方法,但我不會推薦它! – 2009-06-21 18:37:00
Fabien指出,您將需要使用Web服務器來提供文件。例如與ASP你會服務於文件之前給該文件的內容類型:
Response.contenttype = "application/octet-stream"
這必須在服務器端完成。要在Apache服務器上執行此操作,請將其添加到.htaccess
文件中:AddType application/octet-stream mp3
其中,mp3是需要下載的文件類型。
無論文件類型是什麼(即,不要在瀏覽器中使用Adobe Reader打開PDF或呈現HTML頁面等),我是否正確理解您要強制下載對話框?如果是這種情況,可以添加標題「Content-Disposition:attachment;」在服務器端。我不知道如何在客戶端強制執行此操作。 – Blixt 2009-06-21 18:27:27