Javascript 需要帮助在angularjs的zip文件中下载多个图像吗
我的代码是根据JSZIP2X工作的,但现在显示错误“此方法已在JSZIP3.0中删除,请查看升级指南。”。我已经检查了升级的指南,但我的代码仍然不起作用。我需要帮助下载多个图像在zip文件在angularjs。提前谢谢Javascript 需要帮助在angularjs的zip文件中下载多个图像吗,javascript,angularjs,node.js,jszip,Javascript,Angularjs,Node.js,Jszip,我的代码是根据JSZIP2X工作的,但现在显示错误“此方法已在JSZIP3.0中删除,请查看升级指南。”。我已经检查了升级的指南,但我的代码仍然不起作用。我需要帮助下载多个图像在zip文件在angularjs。提前谢谢 var zip = new JSZip(); var count = 0; var zipFilename = "zipFilename.zip"; var urls = [
var zip = new JSZip();
var count = 0;
var zipFilename = "zipFilename.zip";
var urls = [
'http://54.190.15.249/photo/1476967612xyKgSfAlgHEHSt49LfnmvVw3MWTVq4.png',
'http://54.190.15.249/photo/1476967612xyKgSfAlgHEHSt49LfnmvVw3MWTVq4.png',
'http://54.190.15.249/photo/1476967612xyKgSfAlgHEHSt49LfnmvVw3MWTVq4.png'
];
urls.forEach(function(url){
var filename = "filename";
// loading a file and add it in a zip file
JSZipUtils.getBinaryContent(url, function (err, data) {
if(err) {
throw err; // or handle the error
}
zip.file(filename, data, {binary:true});
count++;
if (count == urls.length) {
var zipFile = zip.generate({type: "blob"});
saveAs(zipFile, zipFilename);
}
});
});
错误来自
zip.generate
。。。已在JSZip v3中删除。就像上面说的,你需要用它来回报承诺
在您的情况下,您可以编写一个函数来包装JSZipUtils.getBinaryContent
,并返回结果承诺(来自):
然后,对于每个url,将其转换为下载内容的承诺,并将其添加到zip对象中(如:
请参阅完整示例。这不是一项“为我编写代码”服务…您是否。。。查看升级指南了吗?哈哈。不……@TZHX是的,我已经检查过了,但我能理解它,这就是为什么在这里寻求帮助
/**
* Fetch the content and return the associated promise.
* @param {String} url the url of the content to fetch.
* @return {Promise} the promise containing the data.
*/
function urlToPromise(url) {
return new Promise(function(resolve, reject) {
JSZipUtils.getBinaryContent(url, function (err, data) {
if(err) {
reject(err);
} else {
resolve(data);
}
});
});
}
urls.forEach(function(url){
var filename = url.replace(/.*\//g, "");
zip.file(filename, urlToPromise(url), {binary:true});
}
zip.generateAsync({type:"blob"}).then(function (zipFile) {
saveAs(zipFile, zipFilename);
});