2011-09-21 70 views
2

現在我有<a href="...">FILE</a>允許用戶下載文件。我不喜歡那樣,因爲它迫使他們離開當前頁面,並且當他們想要返回時必須重新加載它(這需要幾秒鐘)正在下載文件

讓用戶下載文件的最簡單方法是什麼?

+0

您是否嘗試過使用JavaScript? – pqsk

+0

@pqsk:Javascript會如何幫助這裏? –

+0

AJAX彈出窗口或iframe或甚至flash/silverlight。 – pqsk

回答

5

讓服務器爲相關資源發送Content-Disposition: attachment標題。然後它會呈現給用戶(如果他們有一個理智的瀏覽器)作爲一個文件來「保存」,而不是作爲一個新的頁面。

對於某些類型的資源,這可能意味着你在PHP中編寫代理腳本,或者你可以配置你的web服務器來執行它。

1

使用此方法:

<a href="..." target="_blank">FILE</a> 
0

最可靠的方法來強制下載沒有服務器端解決方案是ZIP文件,然後鏈接到該存檔。如果使用ZIP文件沒有任何限制,幾乎所有我遇到的網頁瀏覽器都會將文件下載到用戶的計算機上。

如果您沒有服務器端支持,我只是假設您是因爲您詢問HTML而不是腳本語言,則無法始終從瀏覽器下載文件。這是因爲不是每個網頁瀏覽器都配置相同,並且用戶計算機上的默認應用程序也可能設置爲您無法預測的內容。

此外,您應該使用@ craig1231建議的鏈接方法,以便文件下載請求發生在新窗口中。

<a href="..." target="_blank">FILE</a> 

這將減少一些刷新頁面所需要的時間,並且在大多數情況下,當Web瀏覽器遇到一個ZIP文件作爲窗口的URL,一旦文件開始,將關閉該窗口下載。