vue使用axios接收流文件的实现

 更新时间:2022年08月07日 11:22:59   作者:weixin_43869439  
本文主要介绍了vue使用axios接收流文件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在工作中遇到使用axios接收流文件,遇到了一些问题,整理如下:

在调用接口成功后如图所示:

现在需要调试下axios.js文件统一拦截

// 导出
    const headers = response.headers
    //console.log(headers['content-type'])  将打印的值,也将后台返回的相应头设置成相同的,我的就是'application/octet-stream;charset=UTF-8',然后返回response
    if (headers['content-type'] == 'application/octet-stream;charset=UTF-8') {
        return response;
    }

现在需要注意headers[‘content-type’] 不一定是 ‘application/octet-stream;charset=UTF-8’
在接口调用时需要设置axios的相应类型,responseType: “blob”

this.axios({
   	method: "get",
    url: "/dafw/cljsdc",
    params: data,
    responseType: "blob"
  })
    .then(res => {
    let blob = new Blob([_res]);
    let downloadElement = document.createElement("a");
    let href = window.URL.createObjectURL(blob); //创建下载的链接
    downloadElement.href = href;
    downloadElement.download = "xxx.xls"; //下载后文件名
    document.body.appendChild(downloadElement);
    downloadElement.click(); //点击下载
    document.body.removeChild(downloadElement); //下载完成移除元素
    window.URL.revokeObjectURL(href); //释放掉blob对象
	...

之后就会下载成功…

到此这篇关于vue使用axios接收流文件的实现的文章就介绍到这了,更多相关vue axios接收流文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

最新评论