使用a标签下载跨域文件时,download属性失效
在使用a标签下载文件时,download属性可以更改下载的文件名,但是当a标签的下载链接跨域时,download属性将不会生效,原因是浏览器无法获取到文件,不能对他进行更改解决办法将文件使用get请求获取到,转为blob,然后获取到blob的url,创建一个新的a标签,赋值download属性,下载。//onclick 事件<a @click="downloadFile(fileUrl,fi
·
在使用a标签下载文件时,download属性可以更改下载的文件名,但是当a标签的下载链接跨域时,download属性将不会生效,原因是浏览器无法获取到文件,不能对他进行更改
解决办法
将文件使用get请求获取到,转为blob,然后获取到blob的url,创建一个新的a标签,赋值download属性,下载。
//onclick 事件
<a @click="downloadFile(fileUrl,fileName)">下载文件</a>
downloadFile(url, fileName) {
var x = new XMLHttpRequest();
x.open("GET", url, true);
x.responseType = 'blob';
x.onload=function(e) {
var url = window.URL.createObjectURL(x.response)
var a = document.createElement('a');
a.href = url
a.download = fileName;
a.click()
}
x.send();
},
更多推荐
已为社区贡献2条内容
所有评论(0)