後端介面返回的是亂碼,如何轉為blob,以及如何下載
阿新 • • 發佈:2021-08-11
需求
在檔案回顯後,點選檔案進行下載
宣告
這是我的筆記,原連結在這裡
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); } });