关于前端下载图片打压缩包的办法---JSZip

最近项目需求是要将echart图片批量下载下来并且打包成zip包
咨询公司大佬以后给了个解决办法 用jsZip这个工具
git地址是:https://stuk.github.io/jszip/
简单好用非常好理解,只需要引入jsZip以后将要下载的图片的base64码、图片名称、图片类型等传入就好了
具体代码附上

import JSZip from 'jszip';

const zip = new JSZip();// 实例化JSZip 

 let img = zip.folder("images");//存放压缩包的文件夹名称
if( checkedList.length != 0){
            //循环遍历checkedList 当item==echartsRefMap的key 的时候获取到 对应key 的值 然后用 echart提供的方法 getDataURL() 进行下载    ,
            let fileName = '';
            let  imageStr= '';
            for ( let i=0; i< checkedList.length ;i++ ){
                for ( let key of echartsRefMap.keys() ){
                    if(checkedList[i] == key ){
                        //获取到echart实例
                        fileName = titleNameList.get(checkedList[i]);
                        imageStr  = echartsRefMap.get(checkedList[i]).getDataURL({ type: 'png', backgroundColor: '#fff' }).replace('data:image/png;base64,', '');
                        img.file(`${fileName}.png`, imageStr, {base64: true});//一定要写上.png不然下载的格式不对
                    }
                }
            }
            zip.generateAsync({type:"blob"})
                .then(function(content) {
                    // see FileSaver.js
                    saveAs(content,`基本情况况分析.zip`);//一定要先写上.zip不然格式不对
                });
        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值