1. 安装 npm 包:

jszip 及 file-saver
 
2. 

 

 

 

 

        let i = 1
        let promises = []
        let zip = new JSZip();
        
        const _this = this;
        msg.forEach(item => {
            const promise = getFile(item).then(data => { // 下载文件, 并存成ArrayBuffer对象
                const arr_name = item.split("/")  // stringObject.split 将字符串分割成字符串数组
                const file_name = arr_name[arr_name.length - 1] // 获取文件名(数组最后一项)
                console.log("压缩data", data)
                zip.file('产品推送' + i + '.png', data, { binary: true }) // 逐个添加文件
                i++
            })
            promises.push(promise)
        })

        
        Promise.all(promises).then(() => {
          console.log("压缩包", zip)
            zip.generateAsync({type:"blob"}).then(content => { // 生成二进制流
                // 利用file-saver保存文件 _this.fileTableTitle是我压缩包名字
                FileSaver.saveAs(content, info.split('.')[0] + ".zip") 
            })
        })

 

posted on 2022-07-19 09:29  occc  阅读(191)  评论(0编辑  收藏  举报