前端流下载写入文件夹分组

用到 createWriteStream 和 zip 插件:

写入文件夹就是拼接好路径就行:文件夹字符串,比如 ‘第一文件夹/子文件夹/孙文件夹’,成功后可写入本机

 

复制代码
const handleBatchDownload = async (cosFileNameUrls, downName) => {
    proxy.$modal.closeLoading();
    // 创建一个文件  项目名称
    const fileStream = createWriteStream(downName);
    const readableZipStream = new ZIP({
        async pull(ctrl) {
            for (let i = 0; i < cosFileNameUrls.length; i++) {
                const res = await fetch(cosFileNameUrls[i].url);
                const stream = () => res.body;
                // 创建文件夹名字  文件夹名字folder 拼接
                const name = cosFileNameUrls[i].folder + cosFileNameUrls[i].cosFileName;
                ctrl.enqueue({ name, stream }); // 不断接收要下载的文件
            }
            ctrl.close();
        },
    });

    if (window.WritableStream && readableZipStream.pipeTo) {
        return readableZipStream.pipeTo(fileStream).then(() => console.log('压缩包下载完成'));
    }
};
复制代码

 

posted @   行走的蒲公英  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示