Чтение содержимого zip с использованием JSZip

Я загружаю zip-папку и пытаюсь прочитать ее XML-файл. Функция может прочитать zip-файл с помощью JSZip, но не может извлечь содержимое файла 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 ответ

Решение

Для тех, кто может иметь такую ​​же проблему

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);                         

                    });                                             
            }); 
Другие вопросы по тегам