gpt4 book ai didi

javascript - 使用 jsZip 从 url 添加图像到 zip 文件

转载 作者:数据小太阳 更新时间:2023-10-29 05:26:03 33 4
gpt4 key购买 nike

我正在尝试使用 jsZip 创建一个 zip 文件。 zip 文件的内容是来自网络的图像。我创建了以下代码。但是当我运行它时,我得到的只是一个 22kb 的空 zip 文件。

<html>
<body>
<script type="text/javascript" src="jszip.js"></script>
<script type="text/javascript" src="FileSaver.js"></script>
<script type="text/javascript" src="jszip-utils.min.js"></script>
<script>
var imgLinks = ["url1", "url2", "url3"];

function create_zip() {
var zip = new JSZip();
for (var i = 0; i < imgLinks.length; i++) {
JSZipUtils.getBinaryContent(imgLinks[i], function(err, data) {
if (err) {
alert("Problem happened when download img: " + imgLink[i]);
console.erro("Problem happened when download img: " + imgLink[i]);
deferred.resolve(zip); // ignore this error: just logging
// deferred.reject(zip); // or we may fail the download
} else {
zip.file("picture" + i + ".jpg", data, {
binary: true
});
deferred.resolve(zip);
}
});
}
var content = zip.generate({
type: "blob"
});
saveAs(content, "downloadImages.zip");
}
</script>
<br/>
<br/>
<center>
Click the button to generate a ZIP file
<br/>
<input id="button" type="button" onclick="create_zip()" value="Create Zip" />
</center>
</body>
</html>

(url1、url2 和 url3 替换为我要下载的图片 url)。

为什么我会收到这些空的 zip 文件?

最佳答案

JSZipUtils.getBinaryContent 是异步的:内容将在 zip.generate() 调用之后添加。在生成 zip 文件之前,您应该等待所有图像。

编辑:

如果您正在加载的文件位于不同的服务器上,则该服务器需要发送额外的 HTTP header ,例如 Access-Control-Allow-Origin: server-hosting-the-page.com。在这种情况下,Firefox 或 Chrome 调试控制台将显示错误。 js 库无法检测到 CORS问题(请参阅 here )并将触发成功,内容为空。

关于javascript - 使用 jsZip 从 url 添加图像到 zip 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27746982/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com