Чтение содержимого 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);
});
});