美文网首页
批量下载二维码,并打包压缩

批量下载二维码,并打包压缩

作者: 喵喵_c938 | 来源:发表于2021-01-15 11:31 被阅读0次

选择相应的图片批量导出或直接批量导出并压缩在一个文件夹里

思路分析
1.先将选中二维码的地址存在一个数组中
2.依次请求图片并将其下载
3.后用jszip压缩文件
4.最后用file-saver生成文件

实现代码:

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

getFile = (url) => {
    return new Promise((resolve, reject) => {
      axios({
        method: 'get',
        url,
        responseType: 'arraybuffer'
      }).then(data => {
        resolve(data.data)
      }).catch(error => {
        reject(error.toString())
      })
    })
  };

  // 批量下载
  handleBatchDownload = async(selectImgList) => {
    const data = selectImgList;
    const zip = new JSZip()
    const cache = {}
    const promises = []
    await data.forEach(item => {
        const promise = this.getFile(item).then(data => { // 下载文件, 并存成ArrayBuffer对象
        const arr_name = item.split("/");
        let file_name = arr_name[arr_name.length - 1] // 获取文件名
        if (file_name.indexOf('.png') == -1) {
          file_name = file_name + '.png'
        }
        zip.file(file_name, data, {
          binary: true
        }) // 逐个添加文件
        cache[file_name] = data
      })
      promises.push(promise)
    })
    Promise.all(promises).then(() => {
      zip.generateAsync({
        type: "blob"
      }).then(content => { // 生成二进制流
        FileSaver.saveAs(content, "photo.zip") // 利用file-saver保存文件
      })
    })
  };

上述输入selectImgList是选择批量导入的图片链接数组。
https://www.npmjs.com/package/file-saver
https://www.npmjs.com/package/jszip

参考文档:
https://segmentfault.com/a/1190000018234223

相关文章

  • 批量下载二维码,并打包压缩

    选择相应的图片批量导出或直接批量导出并压缩在一个文件夹里 思路分析1.先将选中二维码的地址存在一个数组中2.依次请...

  • 通过一些url链接,生成对应的二维码,并打包为zip下载

    做一个记录,客户需要将微信生成的带参二维码,打包压缩成zip,并批量下载通过一系列的操作获取到带参二维码的url,...

  • vue批量下载二维码图片并压缩

    补充:在请求时因为报以下错误,一般都是因为我们的网站是HTTPS的,而对方的链接是HTTP协议的,因此在Ajax或...

  • Java实现多文件边压缩边下载

    思路 批量下载文件时,需要将多个文件打包为zip,然后再下载。实现思路有两种:一是将所有文件先打包压缩为一个文件,...

  • Java实现多文件边压缩边下载,

    思路 批量下载文件时,需要将多个文件打包为zip,然后再下载。实现思路有两种:一是将所有文件先打包压缩为一个文件,...

  • WinMP3Shrink 1.1软件

    1.将下载的文件解压, 并打开WinMP3Shrink.EXE。 2.添加需要压缩的文件,可以选择添加目录批量压缩...

  • 下载base64的图片(批量)

    近期项目中,由于要前端生成二维码图片并下载,用到了记录下。 关于批量下载二维码,我采用的是循环的方式,火狐一次下载...

  • 基础-20、文件压缩(二)

    笔记内容:6.5 zip压缩工具6.6 tar打包6.7 打包并压缩 一、zip压缩 支持压缩目录 1.1#yum...

  • 2018-10-09

    10月8日任务 6.5 zip压缩工具 6.6 tar打包 6.7 打包并压缩 6.5 zip压缩工具 zip压缩...

  • Linux基础操作命令[Linux]Day03

    sed 文档流编辑器 增加 删除 修改 打包压缩 打包 打包并压缩 递归压缩递归解压 vim编辑器 命令模式:可以...

网友评论

      本文标题:批量下载二维码,并打包压缩

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