在javascript中更改下载名称

时间:2012-04-06 20:58:15

标签: html javascript

如果用户点击了可下载的链接,例如

<a href="downloadable.txt">Download</a>

在“另存为”对话框之前是否有客户端(html或javascript)方式更改文件名?

3 个答案:

答案 0 :(得分:72)

HTML5提供了a[download]属性,可让您重命名文件。此示例将下载link.txt并将其重命名为something.txt

​<a download="something.txt" href="link.txt">asdf</a>​​​​​​​​​​​​​​​​​​​​​​​​​​​

请注意,这仅适用于同源网址(即不跨越不同的网址)。

答案 1 :(得分:12)

不,您无法从客户端(HTML或javascript)更改此设置。您需要从服务器更改它。一种方法是使用服务器端脚本来设置Content-Disposition HTTP响应头:

Content-Disposition: attachment; filename=somecustomname.txt

答案 2 :(得分:2)

您可以使用eligrey编写的Filesaver.js脚本(我在这里使用angularjs) 您可以使用XmlHttpRequest对象

在经典JavaScript中实现相同的功能
//In your html code , add these : ->
<script src="https://rawgit.com/eligrey/FileSaver.js/master/FileSaver.js" type="text/javascript"></script>
 <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular-animate.js"></script>
//In your Javascript:- 

$http({
        url: "url where the file is located",
        method: "GET",
        responseType: "blob"
    }).then(function (response) {

saveAs(response.data,"newfilename.extension");

})