vue文件下载导出
1、接口返回文件地址直接下载文件
//在请求完接口后
const link = document.createElement("a");
link.style.display = "none"; //去除a标签的样式
link.href = res.data.data; //接口返回的文件链接
link.download = "文件名称.xlsx";
document.body.appendChild(link);
link.click();
document.body.removeChild(link); // 下载完成移除元素
2、接口返回文件流
this.$axios
.get("/product/DaochuJiegou", {
params: {
_user_token: this.user_token,
space_id: item.handover_space_id
},
responseType: "blob" //设置类型
})
.then(res => {
let blob = new Blob([res.data], {
type: "application/vnd.ms-excel"
}); //文件流处理
const link = document.createElement("a");
link.style.display = "none"; //去除a标签的样式
link.href = URL.createObjectURL(blob);
link.download = "空间结构.xlsx";
document.body.appendChild(link);
link.click();
document.body.removeChild(link); // 下载完成移除元素
});
3、接口返回html前端导出word文件
安装
npm install html-docx-js -S
npm install file-saver -S
导入
import FileSaver from 'file-saver'
import htmlDocx from "html-docx-js/dist/html-docx"
使用
let converted = htmlDocx.asBlob(row.litera_xindei_text);
FileSaver.saveAs(converted, `${row.xindei_title}.docx`);
litera_xindei_text是接口返回的html
xindei_title是文件名称
4、下载图片,接口返回文件地址
也可以用来下载文件
// url是文件地址
fetch(url).then(res => res.blob()).then(blob => {
// 将链接地址字符内容转变成blob地址 不转会将图片直接打开
const a = document.createElement('a')
a.href = URL.createObjectURL(blob)
a.download = row.disk_title // 下载文件的名字
document.body.appendChild(a)
a.click()
document.body.removeChild(a) // 下载完成移除元素
})