2016-02-16 1 views
0

Я пытаюсь разобрать 2 или более файлов xml сразу. Значит, я могу выбрать, например, 5 файлов .xml, после чего он должен быть разобран через плагин jQuery и впоследствии записан на странице. Теперь моя проблема: вторая, третья и т. Д. Итерация цикла срабатывает слишком рано, поэтому первый файл «потерян».Filereader перезаписывается, когда несколько файлов активны

Моя попытка:

var input = $("#xmlInput"); 
input.change(function() { 
    var inputfiles = input[0].files; 
    for (var i = 0; i < inputfiles.length; i++) { 
     var reader = new FileReader(); 
     reader.readAsText(inputfiles[i]); 
     reader.onloadend = function() { 
     var data = $.xml2json(reader.result); 
     console.log(data); 
     //write(data); 
     } 
    } 
}); 

ответ

0

Найден ответ на другой вопрос так:

(function (file) { 
    var reader = new FileReader(); 
    reader.onload = function (readerData) { 
     var data = $.xml2json(readerData.target.result); 
     write(data); 
    } 
    reader.readAsText(file); 
})(inputfiles[i]); 

работает как шарм. =)

0

его просто догадка, но она помогает назначить FileReader различным переменным?

var temp = {}; 

    var input = $("#xmlInput"); 
    input.change(function() { 
     var inputfiles = input[0].files; 
     for (var i = 0; i < inputfiles.length; i++) { 
     temp["reader"+i] = new FileReader(); 
     temp["reader"+i].readAsText(inputfiles[i]); 
     temp["reader"+i].onloadend = function() { 
      var data = $.xml2json(temp["reader"+i].result); 
      console.log(data); 
      //write(data); 
     } 
     } 
    }); 
+0

Thx для помощи, но "temp [" reader "+ i] .result" возвращает неопределенное, любая идея почему? – sandrooco

 Смежные вопросы

  • Нет связанных вопросов^_^