1.最近遇到一个需求,需要多选文件后实现下载,这里采用的是不打包形式。
2.vue前端下载文件一般都是直接新开一个窗口下载,但是这样会有一瞬间的闪屏,即开窗口关窗口这一瞬间的闪屏
3.于是采用js创建a标签实现无闪烁下载
直接写一个for循环,把file的url传入下载方法即可
下载方法代码如下:
async downloadFile(url) {
try { let a = document.createElement("a");
// 创建a标签
let e = document.createEvent("MouseEvents");
// 创建鼠标事件对象
e.initEvent("click", false, false);
// 初始化事件对象
a.href = url;
// 设置下载地址
a.download = "";
// 设置下载文件名
a.dispatchEvent(e);
}catch(e){
alert(e)
}
},
如果大家想压缩后再下载也可以,回去看我写的这篇文章就可以了
亲测可用,java+vue压缩及下载zip