gpt4 book ai didi

jquery - 使用 JSZip 下载图像会导致浏览器崩溃

转载 作者:行者123 更新时间:2023-12-01 01:36:16 26 4
gpt4 key购买 nike

我正在使用 JSZip 将一组图像捆绑在页面上并创建一个 zip 文件来存储它们。相关函数如下:

// Make a zip file
$("#snapLink").click(function() {
var zip = new JSZip();
snapFolder = zip.folder("snaps")
$("#snapRandom img").each( function(index){
imageLink = $(this).attr('src').substring(22);
snapFolder.file("snap" + index + ".png", imageLink, {base64: true});
})
snapZip = zip.generate();
location.href="data:application/zip;base64,"+snapZip;
});

图像是从 Canvas 生成的,因此它们不在文件系统中。图片来源是数据url。

如果需要下载 1-3 张图像,此功能非常有用。一旦超过这个数量,浏览器可能会在超过 10 张图像时崩溃,它肯定会崩溃。到目前为止,我已经在 Mac 上的 Safari 和 Chrome 上对此进行了测试。图片大小约为120k。

您对如何实现这项工作有什么想法吗?提前致谢!

最佳答案

我有同样的问题,为了防止其他人想知道,我在这里发布了一个解决方案。

答案其实就在网站上:https://stuk.github.io/jszip/documentation/howto/write_zip.html

zip.generateAsync({type:"blob"})
.then(function (blob) {
saveAs(blob, "hello.zip");
});

就这么简单。包含 FileSaver.js 并使用 blob 而不是 base64。

该错误是由 href 的字符限制引起的。

The current URL length limit in chrome is 2097152 characters

我最初认为我们必须使用 base64 来保存 zip 文件,因为图像是 base64 格式的。值得庆幸的是,我们可以将其保存为 blob 并克服 1.5Mb 左右的限制

关于jquery - 使用 JSZip 下载图像会导致浏览器崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12984606/

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