从JSzip对象文件夹中读取所有文件并进行迭代

时间:2018-09-21 05:32:48

标签: javascript jszip

我有一个代码,用于在其中生成包含图像的压缩文件。

var zip = new JSZip(result.templateEncoded,{base64:true});

压缩的文件结构如下所示:

{ "files":
        {
          "test/rel":{
                      "name":"xxx.txt"
                     },
          "test/doc.xml":{
                         "name":"kajdadnkan"
                         },
          "test/media/image1.jpeg":{
                                   "name": "word/media/image1.jpeg"
                                   },
          "test/media/image1.jpeg":{
                                   "name": "word/media/image2.jpeg"
                                   }
        }
}

现在,我要访问“测试/媒体”下的所有图像。当我尝试zip.folder('word / media /');它会创建一个新文件夹,并将根路径设置为'word / media /'

还尝试了下面的代码,但是它抛出JS错误,因为不支持forEach()函数。

zip.folder('word').forEach(function (relativePath, file){
                            console.log("iterating over..", relativePath);
                        });

基本上,我想提取所有媒体文件并将其重命名为.png。 我在这里没有太多的接触,所以请多多帮助。

1 个答案:

答案 0 :(得分:0)

 var contentTypesettings = zip.files["test/media"].asText();
var CTXMLDoc = $.parseXML(contentTypesettings);
$(CTXMLDoc).find('Default').each(function() {
    $.each(this.attributes, function(i, attrib) {
        var attrName = attrib.name;
        var attrValue = attrib.value;
     });