当前位置: 首页 > news >正文

使用axios下载后端接口返回的文件流格式文件

在实际开发中,我们经常会遇到下载文件的需求,一般情况下接口最好的处理方式为上传到文件对象存储服务器,然后给前端返回一个下载文件的URL,前端直接打开链接下载就可以了,但…在下载数据量大且参数复杂的情况下,不排除后端接口使用POST请求直接返回文件流格式的数据,这时候前端要下载就比较麻烦了

目前前端领域大多项目都使用三大框架,接口请求也大多使用axios,于是我便记录一下如何使用axios来下载后端返回的文件流格式的文件

  1. 修改接口请求的responseType
export downloadApi = (params) => {return axios.post(`/download/file`, params, {responseType: 'blob'})
}
  1. 下载返回的流文件
 const downloadFile = () => {const downloadParams = {} // 这里是下载接口请求参数try {downloadApi(downloadParams).then((res) => {  // res为后端返回的文件流,浏览器network看到接口返回的是乱码const blob = new Blob([res]);const downloadURL = (window.URL || window.webkitURL).createObjectURL(blob);let a = document.createElement("a");a.download = '这里是下载的文件名称';// 创建二进制对象a.href = downloadURL;// 模拟点击a.click();//释放资源并删除创建的a标签URL.revokeObjectURL(downloadURL);// a.href});} catch(e) {Promise.reject(e)}}

好了,现在在点击下载按钮事件中调用下载方法就可以啦~

http://www.lryc.cn/news/253807.html

相关文章:

  • 在macOS上使用Homebrew安装PHP的完整指南
  • 图片处理OpenCV IMDecode模式说明【生产问题处理】
  • 吹响AI技术应用的号角
  • C //例10.1 从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个“#”为止。
  • ARM预取侧信道(Prefetcher Side Channels)攻击与防御
  • 数据结构 | 二叉树的各种遍历
  • Python-赋值运算符(详解)
  • 算法工程师面试八股(搜广推方向)
  • 学习TypeScrip4(数组类型)
  • Python文件打包成exe可执行文件
  • Android : SQLite 增删改查—简单应用
  • 【蓝桥杯】马的遍历
  • 导入JSON到xmind
  • DataGrip 2023.2.3(IDE数据库开发)
  • 身为 Go 程序员,我为啥更喜欢用 Zig?
  • Amazon CodeWhisperer 使用体验
  • 公众号留言功能怎么申请?
  • 探索三种生成模型:基于DDPMs、NCSNs和SDEs方法的Diffusion
  • Linux随记(七)
  • RESTful API,以及如何使用它构建 web 应用程序。
  • 【华为OD题库-075】拼接URL-Java
  • 【Unity动画】为一个动画片段添加事件Events
  • CoDeF视频处理——视频风格转化部署使用与源码解析
  • ubuntu server 20.04 备份和恢复 系统 LTS
  • NFC对物联网开发的影响及用途
  • 企业级SQL开发:如何审核发布到生产环境的SQL性能
  • linux 手动安装移植 haveged,解决随机数初始化慢的问题
  • 如何使用llm 制作多模态
  • k8s(二):Pod
  • Python 字典详解(dict)