美文网首页
使用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