vue 后臺接口返回文件流地址的下載

第一次獲取這樣的數(shù)據(jù),無從下手啊,百度吧

其實很簡單,首先在axios.post的請求中把默認的 " responseType:‘json’ " 改為" responseType:‘blob’ "; 這塊要敲黑板了,我栽在這里了,一直沒有修改,所以下載下來的文件打開后一直提示,如圖


設置成blob后打開無壓力!

然后按正常的請求接口的方式獲取到了這個文件流,可能是response.data,也可能直接就是response,這個看你們后端人員如何返回了, 獲取到的文件流我們用blob轉一下,

let blob = new Blob([res], {type: "application/vnd.ms-excel"}); // res就是接口返回的文件流了

let objectUrl = URL.createObjectURL(blob);

window.location.href = objectUrl;

這樣不需要再有其他操作了,直接就可以導出文件了.

忘了,得注意blob里的這個type,要根據(jù)你們的需要更換文件類型啊,可以參考一下這個 https://www.cnblogs.com/yjmBlogs/p/9493726.html , 我需要導出的是列表數(shù)據(jù),所以選的是’application/vnd.ms-excel’,就會導出.xls的文件來,你們根據(jù)需求換啊

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容