我们正在使用基于Ajax的报告包,我可以用我自己的jQuery / javascript来增强它。我们遇到的问题之一是它会生成如下的超链接:
<a href="//server/abcdefghijklmnopqrstuvwxyz.xlsx" target="_blank">
由于客户端的浏览器不知道如何处理.xlsx文件,因此会将它们下载到本地驱动器。没关系。问题是客户端讨厌那些长文件名,并希望用更短的文件替换它们(为了争论,让我们说“abc.xlsx”)。
我不能只更改href,因为服务器需要长名称来标识返回的数据,所以我需要的是一种使用原始URL执行GET但是然后更改返回文件名称的方法它使用较短的名称存储在本地。
我知道如何使用jQuery覆盖超链接的click函数并使用$ .get()来获取数据。我不知道的是,一旦我获得数据来改变它的明显文件名,我该怎么做。
答案 0 :(得分:1)
对于现代浏览器,您可以使用download
属性:
<a href="//server/abcdefghijklmnopqrstuvwxyz.xlsx" download="shortName.xlsx" target="_blank">
答案 1 :(得分:0)
标签有一个名为“download”的属性,可以像
一样使用<a href="//server/abcdefghijklmnopqrstuvwxyz.xlsx" download="abc.xlsx">Download</a>
在jquery中必须是
之类的东西$('a').attr('download', 'abc.xlsx');
答案 2 :(得分:0)
您可以在锚标记(a)中使用属性下载,该标记仅适用于Firefox和Chrome。更多信息http://www.w3schools.com/tags/att_a_download.asp
但这是一个服务器端脚本解决方案Change file name for download and start downloading it after click or delay