vue中的批量下载(downloadFile)
//mixin.js
export default {
method: {
downloadFile(url) {
try {
let eleIF = document.createElement('iframe');
eleIF.src = url;
eleIF.style.display = 'none';
document.body.appendChild(eleIF);
//防止下载2次
setTimeout(function () {
document.body.removeChild(eleIF)
}, 1000);
} catch(e) {
console.log(e);
}
}
}
}
## 关于批量下载的说明:
1.后端一般返回数据流,不需要发请求,直接 this.downloadFile = url ,具体路径与单个下载方式相同
2.要对下载的文件进行判断,看是否已经生成完毕,一般由后端返回一个状态
3若是没有生成完,点击下载,则会没有反应,而使用window.location.href时,则会跳到一个类似空白页面,用户体验不佳
例: