Javascript 在zip文件中打开zip文件

Javascript 在zip文件中打开zip文件,javascript,zip,jszip,Javascript,Zip,Jszip,我有一个zip文件(称为a.zip),其中a.zip包含一系列zip文件(0.zip、1.zip…n.zip)。“n”的值取决于我们正在处理的原始文件的大小。每个0-n.zip文件的大小都是有限的,因此我们(理论上)可以通过将大型文件分成较小的块,然后处理较小的块来处理大型文件 使用javascript,我需要打开a.zip并将每个0-n.zip文件发送到服务器进行处理 我已经能够通过以下方式成功地做到这一点: function processZipFile(input) {

我有一个zip文件(称为a.zip),其中a.zip包含一系列zip文件(0.zip、1.zip…n.zip)。“n”的值取决于我们正在处理的原始文件的大小。每个0-n.zip文件的大小都是有限的,因此我们(理论上)可以通过将大型文件分成较小的块,然后处理较小的块来处理大型文件

使用javascript,我需要打开a.zip并将每个0-n.zip文件发送到服务器进行处理

我已经能够通过以下方式成功地做到这一点:

   function processZipFile(input) {
        JSZip.loadAsync(input.files[0]).then(function (zip) {
             zipFiles = zip;
             numberOfFiles = 0;
             zip.forEach(function () {
                  numberOfFiles = numberOfFiles + 1;
             }
         });
         uploadZipFile(0);
   } 

function uploadZipFile(fileCount) {
    zipFiles.file(fileCount).async("blob").then(function (blob) {
        'post file to server'
        'on success increment file count and, if less than number of files, upload next file'
        'on failure retry upload up to three times'
    }
}
使用这个,我能够上传一个250MB的文件而没有问题。我们的客户现在有一个1GB的文件挂起loadAsync调用


是否有一种方法可以访问每个0-n.zip文件并对其进行处理,而不必加载整个zip文件,因为我知道这些文件的大小都是有限的,可以加载并发送到服务器?

这样做的原因是向用户反馈剩余的文件或大小?我这样问是因为还有其他方法可以根据事件显示进度:显示进度是一种“很好的选择”。问题是当我有一个大的原始文件时,返回到原始文件。我们让用户在任何计算机上创建a.zip文件,然后他们必须将其上传到专用网络。每个0-n.zip文件包括原始文件中的数据、用于解密数据的密钥和几个文件。每个0-n文件都需要上传、解密并重新组装数据,以返回原始文件。该进程正在处理一个将近250MB的文件,但在某些情况下,文件大小过大并挂起异步加载。