当我们在写项目的时候,很多时候会遇到文件下载的问题,如下图:
所以我们可以写如下函数方法:
downUrlList(url,name) {
// 循环返回的URL数组多文件下载方法
var eleLink = document.createElement('a');
eleLink.style.display = 'none';
eleLink.download = this.filerName(url,name);
var blob = new Blob([url]);
eleLink.href = URL.createObjectURL(blob);
document.body.appendChild(eleLink);
eleLink.click();
document.body.removeChild(eleLink);
},
filerName(url,name) {
// 提取下载的文件名,传文件名的化就对文件名提取,没有传文件名则提取url的一部分
if(name){
let a = url.split('.')
let b=`${name}.${a[a.length - 1]}`
return b
}else{
let a = url.split('/');
return a[a.length - 1];
}
},
这个函数需要传的参为url地址,当我们需要多文件下载时候,可以如下调用上面的函数:
// 下载资料
downDocument() {
let node = this.$refs.tree.getCheckedNodes();
if(node && node.length>0){
node.forEach(element => {
if(element.address){
this.downUrlList(element.address,element.name)
}
});
}
},