安装以及使用
- npm i jszip file-saver -S
- 封装使用
import * as JSZip from 'jszip'
import * as FileSaver from 'file-saver'
const download = (files, filename) => {
let zip = new JSZip();
let folder = zip.folder('files');
Promise.resolve().then(() => {
return files.reduce((accumulator, file) => {
return accumulator.then(() => fetch(file.url)
.then(resp => resp.blob())
.then(blob => folder.file(`${file.name}.pdf`, new Blob([blob], { type: 'application/pdf' }))))
}, Promise.resolve())
}).then(() => {
folder.generateAsync({ type: "blob" }).then(content => FileSaver.saveAs(content, filename));
})
}
const files=[{name:'第一个pdf',url:'http://localhost:8080/weww1.pdf'},
{name:'第二个pdf',url:'http://localhost:8080/weww2.pdf'},
{name:'第三个pdf',url:'http://localhost:8080/weww3.pdf'} ]
download(files,'全部pdf')