美文网首页
Vue中将多个图片下载打包成zip格式

Vue中将多个图片下载打包成zip格式

作者: 吃肉肉不吃肉肉 | 来源:发表于2023-04-05 09:40 被阅读0次
效果: 1680745307968.png

npm install jszip
npm install file-saver

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

BatchDownload(){
       const imgDataUrl = [
          {
            nickname: '小王.jpg',
            path: 'https://xxx.jpg'
          },
          {
            nickname: '小张.jpg',
            path: 'https://xxx.jpg'
          }
        ]
        let _this = this;
        let zip = new JSZip();
        let cache = {};
        let promises = [];
        _this.title = '正在加载压缩文件';
 
        for (let item of imgDataUrl) {
          const promise= _this.getImgArrayBuffer(item.path).then(data => {
            // 下载文件, 并存成ArrayBuffer对象(blob)
            zip.file(item.nickname, data, { binary: true }); // 逐个添加文件
            cache[item.nickname] = data;
          });
          promises.push(promise);
        }
 
        Promise.all(promises).then(() => {
          zip.generateAsync({ type: "blob" }).then(content => {
            _this.title = '正在压缩';
            // 生成二进制流
            FileSaver.saveAs(content, '签到照片'); // 利用file-saver保存文件  自定义文件名
            _this.title = '压缩完成';
          });
        }).catch(res=>{
          _this.$message.error('文件压缩失败');
        });
      })
},
//通过url 转为blob格式的数据
    getImgArrayBuffer(url){
      let _this=this;
      return new Promise((resolve, reject) => {
        //通过请求获取文件blob格式
        let xmlhttp = new XMLHttpRequest();
        xmlhttp.open("GET", url, true);
        xmlhttp.responseType = "blob";
        xmlhttp.onload = function () {
          if (this.status == 200) {
            resolve(this.response);
          }else{
            reject(this.status);
          }
        }
        xmlhttp.send();
      });
    },

相关文章

  • 在 .gitignore中添加忽略文件无效的解决方法

    在Vue项目中将打包好的dist.zip文件上传到git上了,需要将其忽略,防止以后再次提交到git上,将.zip...

  • 2018-09-15

    springboot中自动化打包部署 目录一、maven插件二、目的--1、打包成zip格式,目录结构--2、将包...

  • ubuntu zip/unzip使用

    zip命令 将test目录下打包成myfile.zip。运行实例: unzip命令 将myfile.zip.解压到...

  • Dataturks 标注 & 新类别处理

    1. 图片文件夹 打 zip 包上传 图片文件夹日期命名,如 20191015,文件夹打包成 20191015.z...

  • maven打包

    背景 spring boot工程,打包成zip发布,zip包内有bin、lib、config目录。bin目录为启动...

  • HBuilderX创建vue项目打包成移动APP

    创建vue项目,利用HBuilderX打包成移动APP,在手机上运行的方法步骤 1、先创建好一个vue项目 2、打...

  • R-常用文件归档压缩

    1、zip 压缩(推荐使用) zip 格式的优点是系统间的通用性好,能够 逐个压缩多个文件并归档 到一个文件中。z...

  • zip命令学习记录

    zip的格式 linux zip命令参数列表: 压缩示例 unzip格式 解压示例

  • Python的打包器zip

    Python 的 zip 函数用于将可迭代的对象作为参数,将多个对象中的对应位置的元素打包成一个个元组,然后返回由...

  • 压缩命令 zip gz

    常用压缩格式: .zip .gz .bz2常用压缩格式: .tar.gz .tar.bz2 .zip格式...

网友评论

      本文标题:Vue中将多个图片下载打包成zip格式

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