美文网首页
纯前端多文件打包下载:JSZip & FileSaver

纯前端多文件打包下载:JSZip & FileSaver

作者: Anoyi | 来源:发表于2021-03-04 22:43 被阅读0次

具体实现

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');

参考资料

相关文章

网友评论

      本文标题:纯前端多文件打包下载:JSZip & FileSaver

      本文链接:https://www.haomeiwen.com/subject/onrlqltx.html