JS之blob對象下載文件,解決word可能打開是亂碼,xlsx文件打不開,圖片顯示格式不支持等問題


請求接口后,接口返回的要是一個文件流的數據。

請示到數據之后用blob對象進行對數據處理;

downloadFile(file) {
      dwonloadFiles({ fileName: file.name }).then(response => {
        let blob = new Blob([response]);
        let downloadElement = document.createElement("a");
        let href = window.URL.createObjectURL(blob); //創建下載的鏈接
        downloadElement.href = href;
        console.log(file.name, "文件名");
        downloadElement.download = file.name; //下載后文件名
        document.body.appendChild(downloadElement);
        downloadElement.click(); //點擊下載
        document.body.removeChild(downloadElement); //下載完成移除元素
        window.URL.revokeObjectURL(href); //釋放掉blob對象
      });
    },

如果直接這樣寫的的話,下載下來的文件,像word可能打開是亂碼,xlsx文件打不開,圖片顯示格式不支持,因此,需要在請求接口的時候加上此屬性:responseType: 'blob'

// 知識鏈庫下載文件
export function dwonloadFiles(query) {
  return request({
    url: '/system/knowledgechain/download',
    method: 'get',
    params: query,
    responseType: 'blob'
  })
}

 


免責聲明!

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



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