gpt4 book ai didi

javascript - 如何在 Javascript 中压缩多个 zip 文件?

转载 作者:行者123 更新时间:2023-11-27 23:51:09 26 4
gpt4 key购买 nike

问题

我想生成一个 ZIP 文件,其中包含 Javascript 中的多个其他 ZIP 文件。我使用 JSZIP,但无法将 ZIP 文件添加到一个 ZIP 文件中。

示例

我有多个文本文件:

  • 玩家 1 - 文件 1.txt
  • 玩家 1 - 文件 2.txt
  • 玩家 2 - 文件 1.txt
  • 玩家 2 - 文件 2.txt

我想生成该 ZIP 文件:

  • 示例.zip
    • 玩家 1.zip
      • 玩家 1 - 文件 1.txt
      • 玩家 1 - 文件 2.txt
    • 玩家 2.zip
      • 玩家 2 - 文件 1.txt
      • 玩家 2 - 文件 2.txt

感谢您的帮助。

最佳答案

fiddle :https://mikethedj4.github.io/kodeWeave/editor/#ca2d1692722e8f6c321c322cd33ed246

经过几个小时和失败的尝试,我终于让它与 JSZip 一起工作。 !

注意:我使用的是 JSZip v2.6.0,该版本目前已过时,无法与发布时的当前版本 3.0 配合使用。

JavaScript:

// Set Sample URL
document.getElementById("zipurl").value = "https://mikethedj4.github.io/kodeWeave/editor/zips/font-awesome.zip";

$(".loadzipurl").on("click", function() {
if ( (!document.getElementById("zipurl").value) ) {
// Do nothing
alertify.error("Unable to perform operation as value is blank!");
} else {
if ( (document.getElementById("zipurl").value.toLowerCase().substring(0,7) === "http://" ) || (document.getElementById("zipurl").value.toLowerCase().substring(0,8) === "https://") ) {
JSZipUtils.getBinaryContent(document.getElementById("zipurl").value, function(error, repoFiles) {
if(error) {
throw error // or handle err
}

var webAppZipBinary = repoFiles;

// Download as Windows App
JSZipUtils.getBinaryContent("https://mikethedj4.github.io/kodeWeave/editor/zips/YourLinApp.zip", function(err, data) {
if(err) {
throw err // or handle err
}

alertify.message("Creating application!");
var zip = new JSZip();
zip.load(data);

// Your Web Application
zip.folder("HELLOMOMMY/").load(webAppZipBinary);

// For 32bit Windows Application
zip.file("package.json", '{\n "main" : "index.html",\n "name" : "test",\n "window": {\n "toolbar" : false,\n "icon" : "app/icons/128.png",\n "width" : 1000,\n "height" : 600,\n "position": "center"\n }\n}');
zip.file("index.html", '<!doctype html>\n<html>\n <head>\n <title>test</title>\n <style>\n iframe {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n overflow: visible;\n border: 0;\n }\n </style>\n </head>\n <body>\n <iframe src="app/index.html"></iframe>\n </body>\n</html>');

// Export your application
var content = zip.generate({type:"blob"});
saveAs(content, "test-win.zip");
return false;
});
});
} else {
alertify.error("Error! \"http://\" and \"https://\" urls are only supported!");
}
}
});

HTML:

<input type="text" id="zipurl" placeholder="http://">
<button class="loadzipurl">Export Application</button>

关于javascript - 如何在 Javascript 中压缩多个 zip 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32696101/

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