接口部分
export function getfileName(fileName) {
console.log(fileName)
return request({
url: '/file/'+fileName,
method: 'get',
headers: {
'Content-Type': 'pplication/octet-stream'
},
responseType: 'blob',
})
}
vue文件部分
getfileName(row.filePath).then(res=>{
if (res) {
et temp = res.headers["content-disposition"]
.split(";")[1]
.split("=")[1];
//对文件名乱码转义--【Node.js】使用iconv-lite解决中文乱码
let iconv = require("iconv-lite");
let fileName = iconv.decode(temp, "gbk");
let type = decodeURIComponent(res.headers["content-type"]); // const xlsx = 'application/vnd.ms-excel'
// console.log(type);
const blob = new Blob([res.data], {
type: "application/vnd.ms-excel;charset=UTF-8",
});
// console.log(blob);
const blobUrl = window.URL.createObjectURL(blob);
let a = document.createElement("a"); // 转换完成,创建一个a标签用于下载
a .style.display = 'none'
// 设置href属性为文件路径,download属性可以设置文件名称
a.href = blobUrl;
a.download = fileName;
document.body.appendChild(a);
a.click();
Window.URL.revokeObjectURL(blobUrl);
a.remove();
} else {
this.$message.error("导出失败");
}
})