JSZip批量下载

JSZip下载

<script type="text/javascript" src="jszip.min.js"></script>
<script type="text/javascript" src="FileSaver.js"></script>

<script>
    var zip = new JSZip();
    var promises = [];
    var arrImg = [
        "http://127.0.0.1/zip/1.png",
        "http://127.0.0.1/zip/jszip.min.js",
        "http://127.0.0.1/zip/test.xlsx"
    ];
    
    for (let item of arrImg) {
        const promise = fetch(item)
        promises.push(promise);
    }
    
    Promise.all(promises).then((results) => {
        for (let item of results) {
            var lastOf = item.url.lastIndexOf('/');
            var filename = item.url.substring(lastOf + 1);
            zip.file(filename, item.blob(), { binary: true }); // 逐个添加文件
        }
        zip.generateAsync({ type: "blob" }).then((content) => {
            // 生成二进制流
            saveAs(content, "t.zip"); // 利用file-saver保存文件  自定义文件名
        });
    }).catch((res) => {
        console.log("文件压缩失败 "+res);
    })
</script>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用jszip进行批量导出图片是一个相对简单的过程。首先,我们需要创建一个新的jszip实例,这可以通过在代码中使用`new JSZip()`来完成。然后,我们可以使用`add`方法将每个图片添加到zip文件中。 下面是一个简单的示例: ```javascript // 导入jszip库 const JSZip = require('jszip'); // 导入fs模块,用于读取文件 const fs = require('fs'); // 创建新的jszip实例 const zip = new JSZip(); // 图片文件夹路径 const imagesFolder = '/path/to/images'; // 读取图片文件夹中的所有文件 fs.readdir(imagesFolder, (err, files) => { if (err) { console.error(err); return; } // 对每个文件进行处理 files.forEach((file) => { // 将文件添加到zip文件中 const fileContent = fs.readFileSync(`${imagesFolder}/${file}`); zip.file(file, fileContent); }); // 生成zip文件 zip.generateAsync({ type: 'nodebuffer' }) .then((content) => { // 将zip文件保存到指定路径 fs.writeFileSync('/path/to/exported.zip', content); console.log('导出成功'); }) .catch((error) => { console.error('导出失败', error); }); }); ``` 这段代码假设你已经安装了`jszip`和`fs`这两个库。 首先,我们导入`jszip`库和`fs`模块(用于读取文件)。然后,我们创建一个新的`JSZip`实例,并将图片文件夹的路径指定为`imagesFolder`。接下来,我们使用`fs.readdir`读取图片文件夹中的所有文件。对于每个文件,我们使用`fs.readFileSync`读取文件内容,并使用`zip.file`将文件添加到zip实例中。最后,我们使用`zip.generateAsync`生成zip文件,并使用`fs.writeFileSync`将它保存到指定路径。 这样就实现了使用jszip批量导出图片的功能。运行代码后,你将获得一个包含所有图片的zip文件,保存在指定的路径上。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值