// word
this.$axios.get(url.exportStream+this.pdfPath.id,{responseType: 'blob'}).then(res=>{
let fileName = res.headers["content-disposition"].split(';')[1]
let filenames = fileName.split('=')[1]
let blob = new Blob([res.data], {
type: "application/msword",
});
let objectUrl = URL.createObjectURL(blob); // 创建URL
const link = document.createElement("a");
link.href = objectUrl;
link.setAttribute("download", filenames);
link.click(); // 下载文件
URL.revokeObjectURL(objectUrl); // 释放内存
})
// pdf
this.$axios.get(url.exportReportList+this.pdfPath.id,{responseType: 'blob'}).then(res=>{
let blob = new Blob([res.data], {
type: "application/pdf",
});
let objectUrl = URL.createObjectURL(blob); // 创建URL
this.pdfSrc = objectUrl
})
// img文件流
this.$axios.get(url.getIndexStream+this.checkRow.id, {
responseType: 'blob' //指定返回数据的格式为blob
}).then((response) => {
const url = URL.createObjectURL(new Blob([response.data]));
const link = document.createElement('a');
link.href = url;
link.setAttribute('download', 'image.jpg'); // 设置文件名
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
})
// xlxs
this.$axios.post(url.exportData,data, {
responseType: "blob", // 指定返回数据的格式为blob
})
.then((res) => {
let fileName = res.headers["content-disposition"].split(';')[1]
let filenames = fileName.split('=')[1]
const blob = new Blob([res.data], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
});
// 创建下载链接
const objectUrl = URL.createObjectURL(blob);
// 创建一个<a>元素并设置下载链接
const link = document.createElement("a");
link.href = objectUrl;
link.download = filenames; // 设置要下载的文件名
// 模拟点击下载链接
link.click();
// 释放资源
URL.revokeObjectURL(objectUrl);
})
.catch((error) => {
console.error("下载文件出错:", error);
});
vue下载xlxs/pdf/word/img文件流
于 2023-03-21 09:37:54 首次发布