1. 程式人生 > 其它 >後端介面返回的是亂碼,如何轉為blob,以及如何下載

後端介面返回的是亂碼,如何轉為blob,以及如何下載

需求

在檔案回顯後,點選檔案進行下載

宣告

這是我的筆記,原連結在這裡
https://blog.csdn.net/qq_24607837/article/details/98196114

解決辦法

1.返回亂碼如何轉為blob

請求的時候新增這一句
responseType:'blob'

2.轉為blob如何下載

 downLoadile(index).then((res) => {
        // 獲取到了res
        let blob = new Blob([res]); //type為所需要下載的檔案格式,以xls檔案為例
        if ("download" in document.createElement("a")) {
          //支援a標籤download的瀏覽器
          const link = document.createElement("a"); //建立a標籤
          link.download = file.name; //a標籤新增屬性
          link.style.display = "none";
          link.href = URL.createObjectURL(blob);
          document.body.appendChild(link);
          link.click(); //執行下載
          URL.revokeObjectURL(link.href); //釋放url
          document.body.removeChild(link); //釋放標籤
        } else {
          navigator.msSaveBlob(blob, file.name);
        }
   });