2009-06-21 134 views
0

我需要一個HTML頁面中的鏈接,它可以使用任何JavaScript來「開始下載」我的網絡服務器上的普通網頁/文件,文件類型如PDF/ZIP或簡單地輸出PHP/ASP/HTML。從網絡服務器下載任何文件類型

我知道這是可能的一些服務器端下載腳本,返回mime_content_type,所以瀏覽器根據其配置處理它。 (通常是下載),但我真的很喜歡只有JavaScript的解決方案。有任何想法嗎?

+0

無論文件類型是什麼(即,不要在瀏覽器中使用Adobe Reader打開PDF或呈現HTML頁面等),我是否正確理解您要強制下載對話框?如果是這種情況,可以添加標題「Content-Disposition:attachment;」在服務器端。我不知道如何在客戶端強制執行此操作。 – Blixt 2009-06-21 18:27:27

回答

1

如果要強制瀏覽器顯示另存爲對話框中我使用了以下標題:

Content-type: application/octet-stream 
Content-Transfer-Encoding: binary 
Content-disposition: attachment; filename=test.pdf 
3

你根本無法在javascript中這樣做,因爲你需要改變MIME類型頭。你可以做的最好的做法是使用open('url')在另一個窗口中打開它,但我認爲這不符合你的需求,並可能被彈出窗口攔截器阻止。

+0

IE瀏覽器可以通過execCommand()調用 – 2009-06-21 18:31:39

+0

這樣做如果你只針對IE用戶,你可以使用類似這樣的方法,但我不會推薦它! – 2009-06-21 18:37:00

0

Fabien指出,您將需要使用Web服務器來提供文件。例如與ASP你會服務於文件之前給該文件的內容類型:

Response.contenttype = "application/octet-stream" 
1

這必須在服務器端完成。要在Apache服務器上執行此操作,請將其添加到.htaccess文件中:AddType application/octet-stream mp3其中,mp3是需要下載的文件類型。

相關問題