原文链接:a标签设置下载设置文件名,并且设置无效的解决方法_js `a` 标签简单设置 href 方式修改文件名失效-优快云博客
设置 a 标签的 download属性,可以重置 文件名。如下代码,文件名重置为 file.xlsx。
<a href='http://192.168.1.1/abcd.xlsx' download='file.xlsx'>下载</a>
const a = document.createElement('a');
a.href = url;//文件url
a.download = filename;//自定义文件名称
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
这种写法有个前提:href 的下载地址 和 当前网站地址 必须是 同源的,否则download不生效
如果不同源,还有一种方法,封装一个download方法,代码如下:
const download = () => {
const x = new window.XMLHttpRequest();
x.open('GET', 'http://192.168.1.1/abcd.xlsx', true);
x.responseType = 'blob';
x.onload = () => {
const url = window.URL.createObjectURL(x.response);
const a = document.createElement('a');
a.href = url;
a.download = 'file.xlsx';
a.click();
};
x.send();
}