2016-03-30 68 views
2

我正在使用window.location下載我的圖像。這不是在HTML,因爲我在服務器上生成的圖像,然後把它背下來,所以它看起來像:使用window.location更改文件名時下載

window.location = data.url; 

我已經看到了一些其他問題,但他們建議download教師責任觀的我不沒有,因爲沒有HTML

有沒有辦法改變文件名?

回答

2

前端解決方案

您可以在前端側做的唯一一件事就是改變你的代碼爲HTML <a>元素與download屬性:

<a href="my_file.pdf" download="very_important_report.pdf">Download</a> 

當用戶點擊該鏈接時,瀏覽器下載的力量,並保存具有給定文件名的文件。你可以在this post瞭解更多關於它的信息。這是一個相當新的功能,所以請檢查browser support

後端溶液

如果可以修改服務器端代碼則應使用content-disposition標頭,如在RFC 2183定義。

content-disposition: attachment; filename=very_important_report.pdf 
+0

我能做類似'$(「」).submit()'所以我創建HTML並通過js觸發它嗎? – PourMeSomeCode

+0

不幸的是,這是不可能的。出於安全考慮,您無法在沒有用戶交互的情況下有效觸發鏈接上的「點擊」。 –

+0

@PourMeSomeCode是我的答案以任何方式對你有幫助? –

2

您無法更改客戶端的文件名。你將不得不在服務器上這樣做。

您可以設置內容部署頭(服務器端)是這樣的:

Content-Disposition: attachment; filename="yourname.gif"