2016-09-06 70 views
1

我使用download屬性來指定一個文件名,下載的數據爲.csv文件,使用folloowing代碼我可以使用HTML'download'屬性提示下載文件名嗎?

$(this).attr({ 
    'download': fileName, 
    'href': csvData, 
    'target': '_blank' 
    }); 

這完美的作品,除了文件名是基於URL從中數據被檢索,因此它可能變得非常漫長和複雜。

是否有可能用文件名提示用戶 - IOW,當他們點擊下載鏈接時,Windows資源管理器(或與OS等效)顯示「另存爲」提示,fileName作爲默認值?

FWIW,我試過在fileName的開頭使用「無效」字符,如問號,無濟於事。我也嘗試了target屬性的其他值,但是也沒有骰子。

很顯然,我可以我的代碼中添加一個提示,顯示文件名,然後允許用戶有指定名稱,但是如果有什麼明顯我已經錯過了......

編輯

舉個例子,要清楚,這裏是一個示例網頁有兩個<A>鏈接的圖像 - 一個顯示圖像,以及一個下載它:

<html> 
<head> 
</head> 
<body> 
<a href="http://www.userlogos.org/files/logos/pek/stackoverflow.png">Link to image</a> 
<br> 
<a href="http://www.userlogos.org/files/logos/pek/stackoverflow.png" download="stackoverflow.png">Download image</a> 
</body> 
</html> 

第二個直接下載圖像,作爲「 stackoverflow.png」。我希望能夠彈出另存爲對話框(如果可能的話),以便用戶可以選擇名稱來保存圖像。就像我右鍵單擊圖像並選擇「將圖像另存爲...」一樣。我意識到這可能是不可能的,因爲這實際上是在瀏覽器和操作系統之間發生的,但是我希望如果我指定了download=?stackoverflow.png",那麼MAYBE會提示名稱。但顯然不是。

回答

1

無法使用鏈接上的任何屬性設置文件的名稱。但是,如果您可以修改服務器添加Content-Disposition標頭的請求,則可以爲所下載的文件設置特定的文件名,而不管URL的結構如何。

具體來說,你需要設置標題是:

Content-Disposition: attachment; filename="yourfilename.pdf" 
+0

我認爲你誤解了(可能是因爲我的問題措辭不佳),我不會失望,但請參閱我上面編輯的問題,這可能會使其更清楚 – roryhewitt

相關問題