首页 > 其他 > 详细

前端如何处理后台返回的文件流

时间:2021-06-03 23:54:08      阅读:22      评论:0      收藏:0      [点我收藏+]

前端如何处理后台返回的文件流?

处理方法:可以通过转化为blob对象的方式处理,具体方法如下:

1、在请求后台接口时需要把responseType设置为blob格式。

2、前端把后台返回的文件流转化为blob对象,然后利用window.URL.createObjectURL把blob对象转化为url,然后利用a标签进行下载。

放码过来:

downloadBlobFile(data, name) {
    if (window.navigator.msSaveOrOpenBlob) {
      // 兼容IE
      try {
        var blobObject = new Blob([encodeURI(data)]);
        window.navigator.msSaveOrOpenBlob(blobObject, fileName);
      } catch (e) {
        console.log(e);
      }
    } else {
      var blob = new Blob([data], {
        type: "application/octet-stream;charset=UTF-8"
      });
      var downloadElement = document.createElement("a");
      // 下载的文件名
      downloadElement.download = name;
      // 创建下载的链接
      downloadElement.href = window.URL.createObjectURL(blob); 
      // 点击下载
      downloadElement.click();
      document.body.appendChild(downloadElement);
      // 下载完成移除元素
      document.body.removeChild(downloadElement); 
       // 释放掉blob对象
      window.URL.revokeObjectURL(downloadElement.href);
    }
  }

  

前端如何处理后台返回的文件流

原文:https://www.cnblogs.com/brucefq/p/14847126.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!