vue使用js-file-download插件下載文件亂碼的解決
使用js-file-download插件下載文件亂碼
在開發(fā)vue項目時遇到使用js-file-download插件下載后端傳過來的二進制文件流時報錯。
像這樣:
解決方法
在默認情況下vue的axios的responseType默認時json,如果接收的時文件流就可能會造成亂碼或者null,我們只需在axios的請求頭中加入responseType:'blob'即可解決問題。
vue通過url下載文件,保留文件名不亂碼
技術(shù)名詞解釋
下載文件方法封裝
技術(shù)細節(jié)
本方法適用在后臺沒有提供下載接口,前臺直接用a標簽下載,文件名是文件服務(wù)器加密后的亂碼。
解決下載后文件名亂碼問題,保持原文件名。
直接新建download.js,把封裝好的代碼復(fù)制進去即可。
export async function downloadFile(url, fileName) { try { const res = await fetch(url) const blob = await res.blob() const a = document.createElement('a') const objectURL = URL.createObjectURL(blob) a.href = objectURL a.download = fileName a.click() URL.revokeObjectURL(objectURL) } catch (error) { console.error('Error occurred while handling file download:', error) } }
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue二次封裝el-select實現(xiàn)下拉滾動加載效果(el-select無限滾動)
el-select默認是不支持虛擬滾動的,需要使用第三方插件來實現(xiàn)虛擬滾動功能,下面這篇文章主要給大家介紹了關(guān)于Vue二次封裝el-select實現(xiàn)下拉滾動加載效果的相關(guān)資料,需要的朋友可以參考下2024-04-04vue3 reactive函數(shù)用法實戰(zhàn)教程
reactive是Vue3中提供實現(xiàn)響應(yīng)式數(shù)據(jù)的方法,reactive的用法與ref的用法相似,也是將數(shù)據(jù)變成響應(yīng)式數(shù)據(jù),當數(shù)據(jù)發(fā)生變化時UI也會自動更新,這篇文章主要介紹了vue3 reactive函數(shù)用法,需要的朋友可以參考下2022-11-11使用element-ui的Pagination分頁的注意事項及說明
這篇文章主要介紹了使用element-ui的Pagination分頁的注意事項及說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-02-02Vue3 computed初始化獲取設(shè)置值實現(xiàn)示例
這篇文章主要為大家介紹了Vue3 computed初始化以及獲取值設(shè)置值實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-10-10vue+echarts+datav大屏數(shù)據(jù)展示及實現(xiàn)中國地圖省市縣下鉆功能
這篇文章主要介紹了vue+echarts+datav大屏數(shù)據(jù)展示及實現(xiàn)中國地圖省市縣下鉆,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-11-11