FileReader читает только один файл, когда несколько сброшено - PullRequest
0 голосов
/ 25 сентября 2019

Я пишу код и работаю с каждым файлом.Я получаю только один читаемый файл.

Код ниже регистрирует каждую итерацию (console.log (i)), но читает и регистрирует только последний файл, независимо от того, что читать как dataURL иликак текст

fileInput.on('change',function(){

    var files= fileInput.prop('files');
    console.log(files);

    for(var i = 0; i < files.length; i++){

       var reader = new FileReader();
      console.log(i);
      reader.onload = function(){

          console.log(reader.result);
      }
      reader.readAsDataURL(files[i]);

    }

  });

Мне нужно, чтобы каждый из нескольких файлов был зарегистрирован в консоли.Спасибо за продвижение

Ответы [ 3 ]

1 голос
/ 25 сентября 2019

используйте let вместо var, чтобы правильно поместить переменную в цикл:

for (let i = 0; i < files.length; i++) { // Use let here

  var reader = new FileReader();
  console.log(i);
  reader.onload = function() {

    console.log(reader.result);
  }
  reader.readAsDataURL(files[i]);

}
0 голосов
/ 25 сентября 2019

Вы должны использовать let вместо var для reader переменной, так как var является областью действия функции.

0 голосов
/ 25 сентября 2019

Разве вы не забыли атрибут multiple в элементе input?

...