具体实现
1、安装相关依赖
npm install file-saver
npm install jszip
2、参考源码
/**
* 多文件打包并下载
* @param files 待下载的文件列表
* @param filename 下载的目标文件名
*/
const download = (files, filename) => {
let zip = new JSZip();
let folder = zip.folder('files');
Promise.resolve().then(() => {
return files.reduce((accumulator, item) => {
return accumulator.then(() => fetch(file.url)
.then(resp => resp.blob())
.then(blob => folder.file(file.name, blob)))
}, Promise.resolve())
}).then(() => {
folder.generateAsync({type: "blob"}).then(content => saveAs(content, filename));
})
}
3、测试
const files = [
{name: 'antd.css', url: 'https://cdn.bootcdn.net/ajax/libs/antd/4.12.3/antd.css'},
{name: 'antd.js', url: 'https://cdn.bootcdn.net/ajax/libs/antd/4.12.3/antd.js'}
]
download(files, 'antd.zip');









网友评论