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


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

處理方法:可以通過轉化為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);
    }
  }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM