后端将图片地址返回过来 前端进行压缩处理

首先 安装jszip这个插件

const getFile = url => {

   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();

   });

};

后面这个要使用第一个.then将后端返回的数据接收过来第二个.then后面跟这些代码

  if (this.code == 1) {

               return false

            }

               let data = this.imglist  //这个就是接收后端的数据

               const zip = new JSZip();

               const cache = {};

               const promises = [];

               var i = 0;

               data.forEach(item => {

                  const promise = getFile(item.link).then(data => {

                     var imgname = item.link.split(".")

                     // 下载文件, 并存成ArrayBuffer对象

                     zip.file(item.name + "." + imgname[imgname.length - 1], data, { binary: true }); // 逐个添加文件

                     cache[item.name] = data;

                  });

                  promises.push(promise);

               });

               Promise.all(promises).then(() => {

                  zip.generateAsync({ type: "blob" }).then(content => {

                     // 生成二进制流

                     FileSaver.saveAs(content, this.imgtitle + ".zip"); // 利用file-saver保存文件  自定义文件名

                  });

               });

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值