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

VUE+jszip如何實(shí)現(xiàn)下載多個(gè)文件導(dǎo)出為一個(gè)zip格式

 更新時(shí)間:2024年03月08日 09:32:05   作者:前端小小白~  
這篇文章主要介紹了VUE+jszip如何實(shí)現(xiàn)下載多個(gè)文件導(dǎo)出為一個(gè)zip格式方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

VUE+jszip下載多個(gè)文件導(dǎo)出為一個(gè)zip格式

項(xiàng)目需求:

將多個(gè)文件/圖片導(dǎo)出為一個(gè)zip格式壓縮包,點(diǎn)擊<下載全部附件>按鈕下載上面三個(gè)文件

1、安裝jszip和file-saver插件

npm install jszip
npm install file-saver

2、在所需頁面引入

import JSZip from "jszip";
import FileSaver from "file-saver";

3、模擬fileList數(shù)組

//fileList模擬文件數(shù)組
  export default {
    name: "notice-list",
    data() {
      return {
	      fileList: [
	      {
	        fileName: '3.jpg',
	        feilePath: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'
	      },
	      {
	        fileName: '5.jpg',
	        feilePath: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'
	      },
	      {
	        fileName: '測(cè)試2.doc',
	        feilePath: 'https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg'
	      }
	    ],
      }
    }
}

4、在methods中定義方法

     // 下載全部附件   downloadBtn<下載全部附件>按鈕綁定事件
      downloadBtn() {
        var blogTitle = `全部附件`; // 下載后壓縮包的名稱
        var zip = new JSZip();
        var promises = [];
        let cache = {};
        for (let item of this.fileList) {
          // item.feilePath為文件鏈接地址
          // item.fileName為文件名稱
          if(item.feilePath) {
            const promise = this.getImgArrayBuffer(item.feilePath).then((data) => {
              // 下載文件, 并存成ArrayBuffer對(duì)象(blob)
              zip.file(item.fileName, data, { binary: true }); // 逐個(gè)添加文件
              cache[item.fileName] = data;
            });
            promises.push(promise);
          } else {
          // feilePath地址不存在時(shí)提示
            alert(`附件${item.fileName}地址錯(cuò)誤,下載失敗`);
          }
        }
        Promise.all(promises).then(() => {
          zip.generateAsync({ type: "blob" }).then((content) => {
            // 生成二進(jìn)制流
            FileSaver.saveAs(content, blogTitle); // 利用file-saver保存文件  blogTitle:自定義文件名
          });
        }).catch((res) => {
          alert("文件壓縮失敗");
        });
      },
      //文件以流的形式獲?。▍?shù)url為文件鏈接地址)
      getImgArrayBuffer(url) {
        return new Promise((resolve, reject) => {
          //通過請(qǐng)求獲取文件blob格式
          let xmlhttp = new XMLHttpRequest();
          xmlhttp.open("GET", url, true);
          xmlhttp.responseType = "blob";
          xmlhttp.onload = function () {
            if (xmlhttp.status == 200) {
              resolve(xmlhttp.response);
            } else {
              reject(xmlhttp.response);
            }
          };
          xmlhttp.send();
        });
      },

5、復(fù)制粘貼可用

看過其它教程有一部分版本都是存在錯(cuò)誤的,所以修改了一部分

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vuex中使用對(duì)象展開運(yùn)算符的示例

    vuex中使用對(duì)象展開運(yùn)算符的示例

    本篇文章主要介紹了vuex中使用對(duì)象展開運(yùn)算符的示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • vue登錄以及權(quán)限驗(yàn)證相關(guān)的實(shí)現(xiàn)

    vue登錄以及權(quán)限驗(yàn)證相關(guān)的實(shí)現(xiàn)

    這篇文章主要介紹了vue登錄以及權(quán)限驗(yàn)證相關(guān)的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Vue.nextTick純干貨使用方法詳解

    Vue.nextTick純干貨使用方法詳解

    這篇文章主要為大家介紹了Vue.nextTick使用方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • 深入探索Vue中樣式綁定的七種實(shí)現(xiàn)方法

    深入探索Vue中樣式綁定的七種實(shí)現(xiàn)方法

    在?Vue.js?開發(fā)中,合理地控制元素的樣式對(duì)于構(gòu)建高質(zhì)量的用戶界面至關(guān)重要,Vue?提供了靈活的方式來綁定樣式,這篇文章將探索?Vue?中設(shè)置樣式的七種做法,并結(jié)合代碼,逐步說明每種方法的實(shí)現(xiàn),需要的朋友可以參考下
    2024-03-03
  • Vue配合Vant使用時(shí)area省市區(qū)選擇器的使用方式

    Vue配合Vant使用時(shí)area省市區(qū)選擇器的使用方式

    這篇文章主要介紹了Vue配合Vant使用時(shí)area省市區(qū)選擇器的使用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Vue中插槽slot的使用示例詳解

    Vue中插槽slot的使用示例詳解

    這篇文章主要介紹了Vue中插槽slot的使用示例詳解,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2025-05-05
  • vue中使用swiper5方式

    vue中使用swiper5方式

    這篇文章主要介紹了vue中使用swiper5方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • Vue實(shí)現(xiàn)選中文本彈出彈窗功能的完多種方法

    Vue實(shí)現(xiàn)選中文本彈出彈窗功能的完多種方法

    在現(xiàn)代 Web 應(yīng)用中,選中文本后顯示相關(guān)操作或信息是一種常見的交互模式,本文將詳細(xì)介紹如何在 Vue 中實(shí)現(xiàn)選中文本后彈出彈窗的功能,包括其工作原理、多種實(shí)現(xiàn)方式以及實(shí)際項(xiàng)目中的應(yīng)用示例,需要的朋友可以參考下
    2025-09-09
  • vant組件表單外部的button觸發(fā)form表單的submit事件問題

    vant組件表單外部的button觸發(fā)form表單的submit事件問題

    這篇文章主要介紹了vant組件表單外部的button觸發(fā)form表單的submit事件問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-06-06
  • Vue使用wangeditor創(chuàng)建富文本編輯器的完整指南

    Vue使用wangeditor創(chuàng)建富文本編輯器的完整指南

    WangEditor是一個(gè)開源的富文本編輯器,由阿里云開發(fā),它提供了一套簡(jiǎn)潔易用的API和豐富的功能,如拖拽上傳圖片、插入表格、自定義表情等,適用于網(wǎng)頁和移動(dòng)應(yīng)用中的內(nèi)容編輯場(chǎng)景,本文介紹了Vue使用wangeditor創(chuàng)建富文本編輯器的完整指南,需要的朋友可以參考下
    2024-08-08

最新評(píng)論

乳山市| 尖扎县| 和林格尔县| 嵊州市| 隆林| 从化市| 外汇| 松阳县| 上饶市| 旌德县| 凌海市| 西青区| 商都县| 湟中县| 读书| 玉环县| 景东| 白银市| 华亭县| 白河县| 青阳县| 临泽县| 平和县| 贺兰县| 婺源县| 大荔县| 罗源县| 丹巴县| 武乡县| 连平县| 东海县| 济源市| 万山特区| 柘城县| 德惠市| 松溪县| 龙州县| 偏关县| 永城市| 新余市| 徐州市|