前端axios请求, 后端接口返回文件流,完成下载

Posted 哈娄

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前端axios请求, 后端接口返回文件流,完成下载相关的知识,希望对你有一定的参考价值。

1.需要声明 axios的 responseType: 'blob'格式 (设置相应数据的类型,设置后后台返回的数据会被强制转为blob类型

axios.post(url, data, { responseType: 'blob' })

2.声明a标签, 完成下载功能函数。

得到接口的 文件流返回值res, 调用此函数 downloadFn(res) 完成下载

// flow为接口返回的文件流
const downloadFn = (flow = null) => {
  if (!flow) return
  const blob = new Blob([flow])
  const blobUrl = window.URL.createObjectURL(blob)

  const a = document.createElement('a')
  a.style.display = 'none'
  a.download = 'Participants.xlsx' // 自定义下载的文件名
  a.href = blobUrl
  a.click()
  document.body.removeChild(a)
}

 

以上是关于前端axios请求, 后端接口返回文件流,完成下载的主要内容,如果未能解决你的问题,请参考以下文章

前端调用后端接口 超时处理 Promise.race() 应用

vue中,前端如何保存后端的接口返回值

vue接口请求很快完成,响应返回数据很慢

导出文件 - 前端调用后端接口,根据返回数据做文件导出

导出文件 - 前端调用后端接口,根据返回数据做文件导出

导出文件 - 前端调用后端接口,根据返回数据做文件导出