서버에 여러 파일들이 존재한다.
단일 파일은a태그를 이용해서 서버URL로 요청하면 다운 받을 수 있다.
현재 하고 싶은 것은 사용자가 여러 파일을 업로드 후 다시 파일들을 다운 받을 때.zip으로 묶어서 한번에 받고 싶다.
npm install file-saver jszip
const saveFilesAsZip = (files) => {
const zip = new JSZip();
const remoteZips = files.map(async (file) => {
const fetchedFile = await fetch(image.path)
.then((res) => {
if (res.status === 200) return res.blob();
})
.catch((err) => console.log(err));
if (fetchedFile) {
zip.file(`${file.name}.${file.type}`, fetchedFile, {
binary: true,
});
}
});
Promise.all(remoteZips).then(() => {
zip.generateAsync({ type: 'blob' }).then((blob) => {
saveAs(blob, `test.zip`);
});
});
};