前端用vue怎么接收并导出文件
- window.location.href = "excel地址"
- 如果是 get 请求,那直接换成 window.open(url) 就行了
- 创建一个隐藏的 iframe,把 iframe 的 src 指向这个 url,就可以下载了
- 如果是 post 请求,那创建一个 form,target 指向这个 iframe。让后台加一个文件下载的 http response header Content-Disposition: attachment; filename="filename.xlsx", 浏览器自己会处理文件下载的。
本人用的是第三种方法
生明方法 downloadFile
module.exports = (url = ``) => {
try {
const elemIF = document.createElement(`iframe`);
elemIF.src = url;
elemIF.style.display = `none`;
document.body.appendChild(elemIF);
} catch (e) {
console.log(e);
}
};
调用downloadFile(url)
downloadFile(`${this.$base.path.nodeServiceHost}/downLoad?url=/zhyj/busi/download&fastReportId=${row.fastReportId || ``}`);