页面中使用单一按钮同时下载多个文件。
最近一个vue项目中使用window.loacation来下载文件,在下载多文件的时候只能下载到一个,查了查资料,这个和浏览器的安全规则有关,所以既然新开页面不行,那就动态在页面中增加隐藏的iframe元素,去请求这个文件,然后再删除这个iframe就解决了这个问题。代码如下:export function multiDownLoad(val) {for (...
·
最近一个vue项目中使用window.loacation来下载文件,在下载多文件的时候只能下载到一个,查了查资料,这个和浏览器的安全规则有关,
所以既然新开页面不行,那就动态在页面中增加隐藏的iframe元素,去请求这个文件,然后再删除这个iframe就解决了这个问题。
代码如下:
export function multiDownLoad(val) {
for (let i = 0; i < val.length; i++) {
const iframe = document.createElement("iframe");
iframe.style.display = "none";
iframe.style.height = 0;
iframe.src = val[i];
document.body.appendChild(iframe);
setTimeout(res => {
iframe.remove()
}, 5 * 60 * 1000);
}
}
然后我再需要用到这个方法的组件里面引入这个方法:
import { multiDownLoad } from '@/utils/multiDownLoad'
使用:
downLoadMaterialFile() {
if(this.form.sampleFileFullUrlList){
multiDownLoad(this.form.sampleFileFullUrlList)
}else {
this.$message({
showClose: true,
message: '没有该文件',
type: 'warning'
});
}
}
原文在这里,希望大家多多分享知识,让更多人像我这样的萌新能够快速入门。
更多推荐
已为社区贡献2条内容
所有评论(0)