美文网首页
vue如何处理文件流,下载excel文件

vue如何处理文件流,下载excel文件

作者: 金药 | 来源:发表于2022-09-12 17:32 被阅读0次
import axios from 'axios'
import { message } from 'ant-design-vue'

const getFile = ({ url, params, tail, type }) => {
  let data = type ? 'data' : 'params'
  type = type || 'get'
  return new Promise((resolve, reject) => {
    axios({
      headers: {
        'hello': 'world'
      },
      withCredentials: true,
      url,
      method: type,
      [`${data}`]: params,
      responseType: 'blob'
    }).then(res => {
      console.log('export_file got res === ', res)
      let resHeaders = res.headers
      let resFileName = resHeaders['content-disposition'] || ''
            let fileName = decodeURIComponent(resFileName.match(/filename\*\=(.*)/)[1]).split("utf-8''")[1]
            const blob = new Blob([res.data], { type: 'application/vnd.ms-excel' })
            const a = document.createElement('a')
            a.href = URL.createObjectURL(blob)
            a.download = `${fileName}${tail}`
            a.click()
            URL.revokeObjectURL(a.href)
            a.remove()
    }).catch(err => {
      console.log('export_file catch error === ', err)
      message.error('文件导出失败')
      reject(`faild: ${err}`)
    })
  })
}

export default getFile

相关文章

网友评论

      本文标题:vue如何处理文件流,下载excel文件

      本文链接:https://www.haomeiwen.com/subject/mmehortx.html