前端接收二进制文件流,通过blob对象实现下载

实现表格导出功能时,后端接口返回一堆看不懂的乱码,第一反应是不是接口出错了,其实不是,后端直接返回了一个二进制流,前端需要通过blob对象来实现文件下载功能。

后端返回结果如下:

在这里插入图片描述
代码如下:

let param = {};
this.$http.post("/api/xxx/xxx/xxx",{
    timeout:0,
    params:param,
    responseType:'blob'
}).then( res =>{
   let url = window.URL.createObjectURL(res.data); //表示一个指定的file对象或Blob对象
   let a = document.createElement("a"); 
   document.body.appendChild(a);
   let fileName= new Date()+'导出文件';  //filename名称截取
   a.href = url;
   a.download = fileName; //命名下载名称
   a.click(); //点击触发下载  
   window.URL.revokeObjectURL(url);  //下载完成进行释放
})
发布了58 篇原创文章 · 获赞 85 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/codezha/article/details/103372485