記錄一下關於blob下載問題


1.封裝了一個供下載使用的方法
export function PostExport(code, paramJson) {
  return new Promise((resolve, reject) => {
    var json = { code: code, request: paramJson };
    var type = { responseType: "blob" };
    axios
      .post(
        context.$net.PAGE_URL,
        qs.stringify({ requestData: JSON.stringify(json) }),
        type
      )
      .then(res => {
        resolve(res.data);
      })
      .catch(err => {
        reject(err.data);
      });
  });
}
 
2.使用的時候根據封裝的方法(此方法是下載壓縮文件)
PostExport("E0004", paramJson).then(res => {
            const blob = new Blob([res], { type: "application/zip" });
            const downloadElement = document.createElement("a");
            const href = window.URL.createObjectURL(blob); //創建下載的鏈接 (可以是 File 對象、Blob 對象或者 MediaSource 對象)
            downloadElement.href = href;
            downloadElement.download = `簽約協議${this.getCurrent[0]}.zip`; //下載后文件名
            document.body.appendChild(downloadElement); //將a節點添加到document.body末尾
            downloadElement.click(); //點擊下載
            document.body.removeChild(downloadElement); //下載完成移除元素
            window.URL.revokeObjectURL(href); //釋放blob對象
          });
        }
2.1(此方法是下載excel文件)
PostExport("R0027", paramJson).then(res => {
        window.console.log(res);
        var blob = new Blob([res]);
        var downloadElement = document.createElement("a");
        var href = window.URL.createObjectURL(blob); //創建下載的鏈接
        downloadElement.href = href;
        downloadElement.download = `好日子贖回明細${this.getCurrent[0]}.xls`; //下載后文件名
        document.body.appendChild(downloadElement);
        downloadElement.click(); //點擊下載
        document.body.removeChild(downloadElement); //下載完成移除元素
        window.URL.revokeObjectURL(href); //釋放掉blob對象
      });


免責聲明!

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



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