第一种:直接使用a标签,不需要往后台传递参数的情况
<a :href="http://10.168.2.40:8989/xxxxxx/download`"
download="下载的文件名称">下载模板</a>
第二种:动态创建a标签,需要给后台传递参数的情况
const params = {
a: 123,
b: 234
};
axios.get(`http://${window.location.host}/api/xxxxxx/download`,{
params, //传递给后台的参数Ï
headers: {
'Token': '32432432423423423423423423423', //传递给后台的令牌
},
responseType: 'arraybuffer'
}).then((res) => {
const blob = new Blob([res.data], { type: 'application/zip' })
const url = URL.createObjectURL(blob)
const a = document.createElement('a')
a.style.display = 'none'
a.href = url
a.setAttribute('download', ‘下载的文件名称’)
const evObj = document.createEvent('MouseEvents');
evObj.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, true, false, 0, null);
const flag = a.dispatchEvent(evObj);
this.$nextTick(() => {
if (flag) {
this.$Message.success(‘下载成功’);
}
});
}).catch(() => {
this.$Message.success(‘下载失败’);
})