Vue 文件下载使用Blob对象
Blob对象可以看做是存放二进制数据的容器,使我们可以通过JS直接操作二进制数据
一个Blob对象就是一个包含有只读原始数据的类文件对象。Blob对象中的数据并不一定得是JavaScript中的原生形式。File接口基于Blob,继承了Blob的功能,并且扩展支持了用户计算机上的本地文件
记录参考blob博客
调用方法
downloadFile(ids) {
const data = {
ids: ids
};
let token = getStore('token');
axios({
method: 'get',
url: '/message/export',
params: data,
responseType: 'blob',
headers: {
token: token
}
}).then(res => {
const link = document.createElement('a');
let blob = new Blob([res.data], { type: 'application/vnd.ms-excel' });
link.style.display = 'none';
link.href = URL.createObjectURL(blob);
link.setAttribute('download', '报文记录.xlsx');
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
this.$message.success('导出成功!');
}).catch(err=>{
this.$message.error('导出失败 !');
});
},
下载文件名------------后缀修改下载文件格式
link.setAttribute('download', '报文记录.xlsx');