tool

js 多个不同格式文件下载为一个zip

2022-05-16  本文已影响0人  Peter_2B

业务场景:后端返回对象数组,每个对象里包含了后缀 .pdf、.jpeg、 .png等文件, 需要将这些格式不同的文件下载为一个zip包


 <button @click="download">download</button>
import JSZip from 'jszip';
import {saveAs} from 'file-saver';

async download(){
         var arr = [
                'https://dggtechtest.oss-cn-beijing..... .pdf',
                'https://dggtechtest.oss-cn-beijing..... .pdf',
        ];

        try{
                var zip = new JSZip();

                let blob = await fetch(arr[0]).then(res=>res.blob());
                zip.file('1.pdf', blob);

                let blob2 = await fetch(arr[1]).then(res=>res.blob());
                zip.file('2.pdf', blob2);
                
                let src = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAA.....';
                let img = src.replace(/^data:image\/jpeg;base64,(.)/, '$1'); // 去除头部'data:image/jpeg;base64,'
                
                zip.file('m.jpeg', img, {base64:true});

                zip.generateAsync({type:'blob'}).then((content)=>{
                    console.log('content:', content);
                    saveAs(content, 'example.zip');
                });
        } catch(err){
            console.log("err:", err);
        }
}
example.zip
上一篇 下一篇

猜你喜欢

热点阅读