首页 > 其他 > 详细

下载二进制文件

时间:2020-12-15 15:09:20      阅读:25      评论:0      收藏:0      [点我收藏+]

如果后台返回url,则使用window.open()

如果后台接口返回的是二进制流

axios({
  method: ‘post‘,
  url: ‘/export‘,
  responseType: ‘arraybuffer‘,
})
.then(res => {
  // 假设 data 是返回来的二进制数据
  const data = res.data
  const url = window.URL.createObjectURL(new Blob([data], {type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"}))
  const link = document.createElement(‘a‘)
  link.style.display = ‘none‘
  link.href = url
  link.setAttribute(‘download‘, ‘excel.xlsx‘)
  document.body.appendChild(link)
  link.click()
  document.body.removeChild(link)
})

 

封装:

// 导出excel
import { Loading } from "element-ui";
const exportExcel = ({url, type=‘post‘, params={}, excelName=‘excel‘}) => {
  var loadingInstance = Loading.service(
    Loading.service({
      background: "rgba(0,0,0,0.5)"
    })
  )
  baseAxios[type](url, params, {responseType: ‘blob‘}).then(res => {
    const link = document.createElement(‘a‘)
    let blob = new Blob([res.data], {type: ‘application/vnd.ms-excel‘})
    link.style.display = ‘none‘
    link.href = URL.createObjectURL(blob)
    // link.download = res.headers[‘content-disposition‘] //下载后文件名
    link.download = `${excelName}_${new Date().getTime()}`  //下载的文件名
    document.body.appendChild(link)
    link.click()
    document.body.removeChild(link)
    loadingInstance.close();
  }).catch(() => {
    loadingInstance.close();
  })
}
export default exportExcel

 

下载二进制文件

原文:https://www.cnblogs.com/zhangrenjie/p/14137738.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!