美文网首页
使用jszip和file-saver打包成压缩包下载

使用jszip和file-saver打包成压缩包下载

作者: 懒懒猫 | 来源:发表于2022-07-15 18:05 被阅读0次

生成二维码图片,查看该文章:https://www.jianshu.com/p/fb9a3a095d03
生成带文本的二维码,查看该文章:https://www.jianshu.com/p/53c045df77bd
本章主要讲述jszip和file-saver打包成压缩包,原文链接:https://juejin.cn/post/6948791914661412900

安装

安装jszip
npm install jszip
安装jszip
npm install file-saver

引入

import JSZip from 'jszip'
import FileSaver from 'file-saver'

使用

 this.$nextTick(() => {
            // // 创建一个code文件夹,文件里里创建一个images文件,文件内容为空
            this.zip = new JSZip()
            this.imgZipList = this.zip.folder('images')

            // 获取每个二维码的dom
            const canvasBoxList = document.querySelectorAll('.qr-section')
            canvasBoxList.forEach((item, index) => {
              // 处理生成待编码的二维码图片
              html2canvas(item).then(canvas => {
                // 获取图片在线地址
                const dataURL = canvas.toDataURL('image/jpg')

                const that = this
                const total = canvasBoxList.length
                // ↓第一个参数是单张二维码图片的命名,第二个参数是二维码的base64,这里用replace把URL的前缀截掉仅保留纯base64编码
                that.imgZipList.file(
                  '二维码_' + index + '.png',
                  dataURL.replace(/^data:image\/(png|jpg);base64,/, ''),
                  {
                    base64: true
                  }
                )
                if (index === total - 1) {
                  // 添加完下载
                  this.zip.generateAsync({ type: 'blob' }).then(function (content) {
                    // 使用file-saver保存下载zip文件,第二个参数是压缩包命名
                    FileSaver.saveAs(content, `二维码.zip`)
                    that.$emit('handleCancel')
                  })
                }
              })
            })
          })

具体例子

相关文章

网友评论

      本文标题:使用jszip和file-saver打包成压缩包下载

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