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

vue中下載文件的方法示例詳解

 更新時(shí)間:2023年11月14日 14:18:56   作者:簡(jiǎn)單Janeee  
這篇文章主要介紹了vue中下載文件的方法,通過(guò)實(shí)例代碼講解了下載后端返回文件和下載本地文件,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

1. 下載后端返回文件

1.1 后端為post請(qǐng)求返回二進(jìn)制流文件

Blob

Blob對(duì)象標(biāo)識(shí)一個(gè)不可變、原始數(shù)據(jù)的類(lèi)文件對(duì)象。Blob表示的不一定是JavaScript原生格式的數(shù)據(jù)

responseType

responseType它表示服務(wù)器響應(yīng)的數(shù)據(jù)類(lèi)型,由于后臺(tái)返回來(lái)的是二進(jìn)制數(shù)據(jù),所以要把它設(shè)為‘blob’

通過(guò)設(shè)置responseType為blob,可以直接拿到二進(jìn)制文件轉(zhuǎn)化為Blob,兩種使用 Blob 實(shí)現(xiàn)文件下載的方式

URL.createObjectURL

在瀏覽器端,實(shí)現(xiàn)直接下載文件,就是使用a標(biāo)簽來(lái)只想文件的下載地址。window.location.href的本質(zhì)也是這樣,因此在拿到二進(jìn)制文件對(duì)應(yīng)的Blob對(duì)象后,需要為這個(gè)Blob對(duì)象創(chuàng)建一個(gè)指向它的下載地址的URL

URL.createObjectURL 方法則可以實(shí)現(xiàn)接收 File 或 Blob 對(duì)象,創(chuàng)建一個(gè) DOMString,包含了對(duì)應(yīng)的 URL,指向 Blob 或 File 對(duì)象,它看起來(lái)會(huì)是這樣:

“blob:http://localhost:8080/a48aa254-866e-4c66-ba79-ae71cf5c1cb3”

完整使用:

export const downloadFile = (fileStream, name, extension, type = "") => {
  const blob = new Blob([fileStream], {type});
  const fileName = `${name}.${extension}`;
  if ("download" in document.createElement("a")) {
    const elink = document.createElement("a");
    elink.download = fileName;
    elink.style.display = "none";
    elink.href = URL.createObjectURL(blob);
    document.body.appendChild(elink);
    elink.click();
    URL.revokeObjectURL(elink.href);
    document.body.removeChild(elink);
  } else {
    navigator.msSaveBlob(blob, fileName);
  }
};

FileReader

FileReader 對(duì)象也可以使得我們對(duì) Blob 對(duì)象生成一個(gè)下載地址 URL,它和 URL.createObject 一樣可以接收 File 或 Blob 對(duì)象。
這個(gè)過(guò)程,主要由兩個(gè)函數(shù)完成readAsDataURLonload,前者用于將Blob或File對(duì)象轉(zhuǎn)為對(duì)應(yīng)的URL,后者用于接收前者完成后的URL,它會(huì)在e.target.result
完整使用:

const readBlob2Url  =  (blob, type) =>{
  return new Promise(resolve => {
    const reader = new FileReader()
    reader.onload = (e) => {
      resolve(e.target.result)
    }
    reader.readAsDataURL(blob)
  })
}

1.2 后端直接返回get請(qǐng)求文件

<a href=‘get請(qǐng)求返回的地址’></a>

2. 下載本地文件

前端項(xiàng)目中下載某個(gè)地址的文件模塊,文件不想放到后端去下載,在文件大小不太大的情況下,可以把文件放在前端項(xiàng)目中,無(wú)論開(kāi)發(fā)環(huán)境還是生產(chǎn)環(huán)境,都能在同樣路徑下找到那個(gè)文件

1.在vue-cli3.x的版本中,將需要下載的文件放到public文件夾中

2.下載文件

<script>
downloadUrl: `${process.env.BASE_URL}file/xxx_template.xlsx`, // 模板下載文件地址
</script>
<template>
<a :href="downloadUrl">點(diǎn)擊下載</a>
</template>

參考資料:
詳解,從后端導(dǎo)出文件到前端(Blob)下載過(guò)程

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

相關(guān)文章

  • 函數(shù)式組件劫持替代json封裝element表格

    函數(shù)式組件劫持替代json封裝element表格

    這篇文章主要介紹了為大家函數(shù)式組件劫持替代json封裝element表格的過(guò)程思路及示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • vue2.X組件學(xué)習(xí)心得(新手必看篇)

    vue2.X組件學(xué)習(xí)心得(新手必看篇)

    下面小編就為大家?guī)?lái)一篇vue2.X組件學(xué)習(xí)心得(新手必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • Vue.$set 失效的坑 問(wèn)題發(fā)現(xiàn)及解決方案

    Vue.$set 失效的坑 問(wèn)題發(fā)現(xiàn)及解決方案

    這篇文章主要介紹了Vue.$set 失效的坑 問(wèn)題發(fā)現(xiàn)及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 關(guān)于Vue的URL轉(zhuǎn)跳與參數(shù)傳遞方式

    關(guān)于Vue的URL轉(zhuǎn)跳與參數(shù)傳遞方式

    這篇文章主要介紹了關(guān)于Vue的URL轉(zhuǎn)跳與參數(shù)傳遞方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Monaco-editor 的 JSON Schema 配置及使用介紹

    Monaco-editor 的 JSON Schema 配置及使用介紹

    這篇文章主要為大家介紹了Monaco-editor 的 JSON Schema 配置及使用介紹,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • vue中插件和組件的區(qū)別點(diǎn)及用法總結(jié)

    vue中插件和組件的區(qū)別點(diǎn)及用法總結(jié)

    在本篇文章里小編給大家分享的是一篇關(guān)于vue中插件和組件的區(qū)別點(diǎn)及用法總結(jié)內(nèi)容,有興趣的的朋友們可以學(xué)習(xí)下。
    2021-12-12
  • vue中關(guān)于_ob_:observer的處理方式

    vue中關(guān)于_ob_:observer的處理方式

    這篇文章主要介紹了vue中關(guān)于_ob_:observer的處理方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • 使用el-row及el-col頁(yè)面縮放時(shí)出現(xiàn)空行的問(wèn)題及解決

    使用el-row及el-col頁(yè)面縮放時(shí)出現(xiàn)空行的問(wèn)題及解決

    這篇文章主要介紹了使用el-row及el-col頁(yè)面縮放時(shí)出現(xiàn)空行的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Vant中Popover氣泡彈出框位置錯(cuò)亂問(wèn)題解決

    Vant中Popover氣泡彈出框位置錯(cuò)亂問(wèn)題解決

    這篇文章主要為大家介紹了Vant中Popover氣泡彈出框位置錯(cuò)亂問(wèn)題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Pinia中action使用方法詳解

    Pinia中action使用方法詳解

    Pinia是Vue的存儲(chǔ)庫(kù),它允許您跨組件/頁(yè)面共享狀態(tài),下面這篇文章主要給大家介紹了Pinia中action使用方法的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04

最新評(píng)論

奉化市| 渑池县| 靖安县| 胶州市| 图们市| 长乐市| 浙江省| 吴忠市| 沐川县| 富顺县| 尉氏县| 常山县| 五指山市| 南靖县| 阿坝县| 西青区| 崇阳县| 拜城县| 政和县| 岳阳县| 汾阳市| 鱼台县| 怀柔区| 盐源县| 麦盖提县| 青田县| 福建省| 高陵县| 当涂县| 永丰县| 龙海市| 汶上县| 平舆县| 麻栗坡县| 竹溪县| 新建县| 浦江县| 汾阳市| 乌鲁木齐市| 四会市| 金平|