我正在尝试下载几个图像文件,并使用JavaScript和JSZip将其存储到单个zip文件中。但是这会返回一个空的zip文件。我究竟做错了什么?我正在使用JSZip和JSZip-Utils
function createZip() {
//Create zip file object
var zip = new JSZip();
//Add folders
//Add files
JSZipUtils.getBinaryContent("icons/8_Bit_Character.png", function (err, data) {
if(err) {
throw err; // or handle the error
}
zip.file("picture.png", data, {binary:true});
});
JSZipUtils.getBinaryContent("icons/16_Bit_Character.png", function (err, data) {
if(err) {
throw err; // or handle the error
}
zip.file("picture2.png", data, {binary:true});
});
//Compile all the data into memory.
var base64 = null;
if (JSZip.support.uint8array) {
promise = zip.generateAsync({type : "uint8array"});
} else {
promise = zip.generateAsync({type : "string"});
}
//Generate the zip file and download it.
zip.generateAsync({type:"base64"}).then(function (base64) {
location.href="data:application/zip;base64," + base64;
});
}
答案 0 :(得分:1)
chunksize
内部函数异步发生。
因此,当您致电JSZipUtils.getBinaryContent
时,zip.generateAsync
尚未发生。
以下是我的例子:
zip.file("picture.png", data, {binary:true});