我希望能夠下載Web文件,但是當下載對話框打開時,文件名將被重命名。下載Javascript重命名文件
例如:文件:http://<server>/<site>/test.txt
,當我點擊下載文件,下載對話框的文件名開:test001.txt
。
我該如何存檔?
我希望能夠下載Web文件,但是當下載對話框打開時,文件名將被重命名。下載Javascript重命名文件
例如:文件:http://<server>/<site>/test.txt
,當我點擊下載文件,下載對話框的文件名開:test001.txt
。
我該如何存檔?
你不能用Javascript做到這一點。 「保存到」-dialog由瀏覽器打開,您無法通過JS訪問它,這是操作系統的標準對話框。
在用戶點擊下載鏈接之前,您的服務器必須提供具有所需名稱的文件。
無論如何,你想重命名下載文件的原因是什麼?
這個效果是通過發送一個額外的頭來完成的。例如,您可以使用PHP來實現:
可以使用.htaccess
(在內部)將請求重定向到PHP文件來重寫URL。我將展示一個簡單的硬編碼爲例,頭怎麼可以設置:
<?php
header('Content-type: text/plain');
header('Content-Disposition: attachment; filename="test001.txt"');
readfile('files/test.txt');
//assuming that the files are stored in a directory, not in a database
?>
但這並不能體現他所尋找的動態性。我的課程想法 – Truesky
我展示瞭如何設置標題。如果他有用PHP編程的技能,他可以改變代碼來完成他的目標。 –
如果你想要的是返回一個連續類型的文件名,你必須寫一個腳本,將跟蹤並將該文件提供給用戶。一種方法是使用普通的PHP,或者一些更高級的東西,如果它一次是幾個文件,可能是PHP中的cURL調用,因此它可以生成幾個不同的文件。我猜這就是你在做什麼,但是你不能在保存框上動態地改變文件名,你返回savename.txt文件名。
使用download
屬性的鏈接。但它只適用於Chrome瀏覽器:)
現在在FF也是如此:) –
http://caniuse.com/#feat=download現在在Opera和Android瀏覽器支持。 –
正如InviS所示,現在鏈接上有一個download
屬性。
實施例:
<a href="http://server/site/test.txt" download="test001.txt">Download Your File</a>
我將其與其他瀏覽器的target =「_ blank」結合使用。 – Darren
http://caniuse.com/#feat=download現在在Opera和Android瀏覽器中支持。 –
謝謝,更新了我的回答 –
我在Sharepoint庫中有文件,我試圖創建一個自定義操作來下載文件並添加文檔版本的文件名稱。 要做到這一點自定義操作,我只能使用JavaScript代碼。 任何提示? – bruno2007