使用JSZip读取zip的内容

时间:2017-01-25 15:34:37

标签: javascript unzip jszip

我正在上传一个zip文件夹并尝试读取其XML文件。该函数可以使用JSZip读取zip,但无法检索XML文件的内容。

readasText 需要一个blob对象,我尝试了不同的东西,但它总是给出类型错误。

  upload: function (e) {
                $("#fullPath").val(e.files[0].name);
                if ($.browser.msie == undefined || ($.browser.msie && $.browser.version < 10) == false) {
                    $("#fullPath").val(e.files[0].name);

                    var zipFile = new JSZip();
                    zipFile.loadAsync(e.files[0].rawFile)
                    .then(function(zip) {

                        var reader = new FileReader();
                        reader.readAsText(zip.files);// type error: dont know how to access the xml file 
                        reader.onloadend = function () {
                            GetValueFile(reader.result);
                        }                           
                    });                                    
                }
            }

我想将XML结果提供给 GetvalueFile 函数 文件对象位于 zip.files 内,但我无法检索它。

1 个答案:

答案 0 :(得分:3)

对于可能遇到同样问题的人

zip.files['test1.xml'].async("string")// gives the content of xml

它返回一个可用于触发更多功能的承诺

            .then(function(zip) {

                zip.files['test1.xml'].async("string")
                .then(function (data) {
                        GetValueFile(data);                         

                    });                                             
            });