vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > 使用js-file-download插件下载文件乱码

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)
  }
}

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文