vue如何處理文件流,下載excel文件

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('文件導(dǎo)出失敗')
      reject(`faild: ${err}`)
    })
  })
}

export default getFile
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容