vue使用js-file-download插件下载文件乱码的解决
作者:宝藏程序员
这篇文章主要介绍了vue使用js-file-download插件下载文件乱码的解决,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
使用js-file-download插件下载文件乱码
在开发vue项目时遇到使用js-file-download插件下载后端传过来的二进制文件流时报错。
像这样:
解决方法
在默认情况下vue的axios的responseType默认时json,如果接收的时文件流就可能会造成乱码或者null,我们只需在axios的请求头中加入responseType:'blob'即可解决问题。
vue通过url下载文件,保留文件名不乱码
技术名词解释
下载文件方法封装
技术细节
本方法适用在后台没有提供下载接口,前台直接用a标签下载,文件名是文件服务器加密后的乱码。
解决下载后文件名乱码问题,保持原文件名。
直接新建download.js,把封装好的代码复制进去即可。
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) } }
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。