前端批量下载七牛云文件
// 组装文件名称
getFileUrl(row) {
var name = row.filename + '.mp3';
var url = row.fileurl + '?attname=' + encodeURI(name);
return url;
},
// 单个下载 第一种方法
/**
downloadOne(row) {
window.open(this.getFileUrl(row), '_self');
}, */
// 单个下载 第二种方法
downloadOne(row) {
var url = this.getFileUrl(row);
var a = document.createElement('a'), //创建a标签
e = document.createEvent('MouseEvents'); //创建鼠标事件对象
e.initEvent('click', false, false); //初始化事件对象
a.href = url; //设置下载地址
a.dispatchEvent(e); //给指定的元素,执行事件click事件
},
// 批量下载
downloadBatch() {
if (this.selectsRows) {
this.selectsRows.forEach(row => {
var t = Date.now();
this.sleep(t, 1500);// 延时1.5秒
this.downloadOne(row);
});
}
},
sleep(t, d) {
while(Date.now() - t <= d);
}
注意:此方法遇到大文件休眠1.5秒可能仍然不够,支持更完整的下载可能要引入第三方组件了,请看另外一篇文章。