方式一、新建一个iframe标签,进行下载
<el-button @click="loadFile" >批量导入</el-button>
loadFile() {
let url = '文件名.xlsx';
const iframe = document.createElement('iframe'); // 创建一个HTML 元素
iframe.style.display = 'none'; // 隐藏iframe 防止影响页面
iframe.style.height = 0; // 高度设置0 防止影响页面
iframe.src = url;// 下载链接
document.body.appendChild(iframe); // iframe挂在到dom树上才会发请求
setTimeout(() => { iframe.remove(); }, 5 * 60 * 1000);
} // 5分钟删掉
方式二、a标签下载
<a href='文件名.xlsx' target='_self'>
<el-button @click="loadFile" >批量导入</el-button>
</a>
//点击时的下载事件
choseDownload(fileId, fileType) {
//首先点击下载事件时创建一个a标签
let link = document.createElement("a");
//将a标签隐藏
link.style.display = "none";
//给a标签添加下载链接 "域名+接口"
//safe是一个动态的域名(safe是ip地址,需要自己定义)
//后面拼接的是接口,替换成你自己的下载接口和需要传递的参数
link.href = this.safe +`/common/download?fileId=` + fileId + "&type=" + fileType;
// 此处给a标签添加一个download属性,属性值就是文件名称否则下载出来的文件是没有属性的
//下面代码,name会有斜杠,不影响使用
link.setAttribute("download", name);
//将上面创建的a标签加入到body的尾部
document.body.appendChild(link);
//最后执行a标签
link.click();
},