最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue使用blob下載文件遇到的問(wèn)題小結(jié)

 更新時(shí)間:2024年02月22日 11:23:45   作者:不悔0.0  
Blob?對(duì)象表示一個(gè)不可變、原始數(shù)據(jù)的類文件對(duì)象,這篇文章主要介紹了vue使用blob下載文件遇到的問(wèn)題記錄,需要的朋友可以參考下

Blob 對(duì)象表示一個(gè)不可變、原始數(shù)據(jù)的類文件對(duì)象。它的數(shù)據(jù)可以按文本或二進(jìn)制的格式進(jìn)行讀取。

在項(xiàng)目中遇到需求,需要將后端返回的二進(jìn)制流下載成 excel 表格形式,首先,先寫(xiě)一個(gè)方法用來(lái)下載

export function fileDownload(res) {
  let blob = new Blob([res.data], {
    type: res.data.type,
  })
  let downloadElement = document.createElement('a')
  let href = window.URL.createObjectURL(blob) //創(chuàng)建下載鏈接
  let fileName = res.headers['content-disposition']
    ? res.headers['content-disposition'].split('attachment;filename=')[1]
    : new Date().getTime()
  downloadElement.href = href
  // window.open(downloadElement.href)
  downloadElement.download = decodeURIComponent(fileName) //解碼
  document.body.appendChild(downloadElement)
  downloadElement.click()
  document.body.removeChild(downloadElement)
  window.URL.revokeObjectURL(href) //釋放掉blob對(duì)象
}

當(dāng)然,也可以使用自定義的文件名,自己傳遞一個(gè)文件名即可

export function downloadFile(res, fileName) {
  const blob = new Blob([res.data], { type: res.data.type })
  let dom = document.createElement('a')
  let url = window.URL.createObjectURL(blob)
  dom.href = url
  dom.download = decodeURI(fileName)
  dom.style.display = 'none'
  document.body.appendChild(dom)
  dom.click()
  dom.parentNode.removeChild(dom)
  window.URL.revokeObjectURL(url)
}

需要注意的是,要記得在下載接口的地方加上  responseType: 'blob',

切記,一定要加上 responseType: 'blob',  否則下載的會(huì)亂碼甚至讀取不出來(lái)

加上之后,在需要使用的地方使用即可

async handleSubmit() {
      if (this.form.pushDepartment.length === 0) {
        this.$message.warning(`推送部門(mén)不能為空`)
        return false
      }
      // 導(dǎo)出excel表格
      let params = {
        healthCodeAlarmIds: [],
        sendDepartment: [],
      }
      this.selectData.forEach((item) => {
        let id = parseInt(item.id)
        params.healthCodeAlarmIds.push(id)
      })
      params.sendDepartment = this.form.pushDepartment
      let res = await exportInfo({ ...params })
      // console.log('res', res)
      fileDownload(res)
      // downloadFile(res, 'yj.xlsx')
    },

到此這篇關(guān)于vue使用blob下載文件遇到的問(wèn)題的文章就介紹到這了,更多相關(guān)vue blob下載文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue跳轉(zhuǎn)外部鏈接的實(shí)現(xiàn)方法

    vue跳轉(zhuǎn)外部鏈接的實(shí)現(xiàn)方法

    這篇文章主要介紹了vue跳轉(zhuǎn)外部鏈接的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • vue3如何使用eventBus訂閱發(fā)布模式

    vue3如何使用eventBus訂閱發(fā)布模式

    EventBus是一種發(fā)布/訂閱事件設(shè)計(jì)模式的實(shí)踐,下面這篇文章主要給大家介紹了關(guān)于vue3如何使用eventBus訂閱發(fā)布模式的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09
  • Vite熱更新失效的問(wèn)題解決

    Vite熱更新失效的問(wèn)題解決

    本文主要介紹了Vite熱更新失效的問(wèn)題解決,原因是文件夾和文件名大小寫(xiě)不一致,下面就來(lái)解決一下次問(wèn)題,感興趣的可以了解一下
    2024-08-08
  • vue根據(jù)權(quán)限動(dòng)態(tài)渲染按鈕、組件等的函數(shù)式組件實(shí)現(xiàn)

    vue根據(jù)權(quán)限動(dòng)態(tài)渲染按鈕、組件等的函數(shù)式組件實(shí)現(xiàn)

    這篇文章主要介紹了vue根據(jù)權(quán)限動(dòng)態(tài)渲染按鈕、組件等的函數(shù)式組件實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望杜大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • vue通過(guò)路由實(shí)現(xiàn)頁(yè)面刷新的方法

    vue通過(guò)路由實(shí)現(xiàn)頁(yè)面刷新的方法

    本篇文章主要介紹了vue通過(guò)路由實(shí)現(xiàn)頁(yè)面刷新的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • vue計(jì)算屬性想要傳入?yún)?shù)如何解決

    vue計(jì)算屬性想要傳入?yún)?shù)如何解決

    這篇文章主要介紹了vue計(jì)算屬性想要傳入?yún)?shù)如何解決問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • 在Vue3項(xiàng)目中關(guān)閉ESLint的完整步驟

    在Vue3項(xiàng)目中關(guān)閉ESLint的完整步驟

    實(shí)際上在學(xué)習(xí)過(guò)程中,你會(huì)發(fā)現(xiàn)eslint檢查特別討厭,這個(gè)時(shí)候我們需要關(guān)閉掉eslint檢查,下面這篇文章主要給大家介紹了關(guān)于在Vue3項(xiàng)目中關(guān)閉ESLint的完整步驟,需要的朋友可以參考下
    2023-11-11
  • Vue.js中對(duì)css的操作(修改)具體方式詳解

    Vue.js中對(duì)css的操作(修改)具體方式詳解

    使用v-bind:class或者v-bind:style或者直接通過(guò)操作dom來(lái)對(duì)其樣式進(jìn)行更改;接下來(lái)通過(guò)本文給大家分享Vue.js中對(duì)css的操作(修改)具體方式,感興趣的朋友跟隨小編一起看看吧
    2018-10-10
  • Vue中掛載全局的方法詳解

    Vue中掛載全局的方法詳解

    有時(shí)候,頻繁調(diào)用的函數(shù),我們需要把它掛載在全局的vue原型上,方便調(diào)用,這篇文章主要為大家詳細(xì)介紹了Vue中掛載全局的具體操作,需要的可以參考下
    2024-03-03
  • 淺談vue 移動(dòng)端完美適配方案

    淺談vue 移動(dòng)端完美適配方案

    最近接觸了一個(gè)項(xiàng)目,vue怎么在不同屏幕上做根據(jù)不同屏幕大小適配,本文就詳細(xì)的來(lái)介紹一下,感興趣的可以了解一下
    2021-09-09

最新評(píng)論

东方市| 昆山市| 田东县| 保山市| 卢湾区| 庆阳市| 永安市| 谢通门县| 西昌市| 宣恩县| 霍山县| 富阳市| 唐海县| 平原县| 锦屏县| 吉木萨尔县| 怀仁县| 霍山县| 措勤县| 牡丹江市| 武隆县| 池州市| 赣榆县| 乾安县| 通化县| 图片| 宁城县| 凤山县| 舒城县| 邵武市| 富阳市| 海兴县| 八宿县| 甘孜| 英吉沙县| 太谷县| 南郑县| 万安县| 凤台县| 银川市| 汶川县|