Уже несколько часов "бьюсь" над поставленным вопросом. С загрузкой одного файла проблем нет. А вот когда пытаюсь загрузить несколько - загружается (считывается) только последний, а остальные "проскакиевает". html
<form>
<input type="file" multiple>
</form>
<button type="button" id="btn">Принять</button>
js
var btn = document.getElementById("btn");
var input = document.forms[0][0];
btn.onclick = function(){
if (input.files.length > 0){
for (var i=0; i<input.files.length; i++) {
var read = new FileReader();
read.readAsDataURL(input.files[i]);
read.onload = function(){
console.log(read.readyState);
console.log(read.result);
}
}
} else {
alert("Сделайте выбор")
}
};
Я так понял, что событие onload генерируется, когда будет загружен последний файл. А как отловить загрузку всех предыдущих файлов?
read. В момент когда функция будет выполняться цикл уже закончится и значением переменной read будет значение на последней итерации цикла. Используешь любое решение из вопроса дубликата, напримерlet read = ...и все заработает – Grundy Nov 08 '17 at 13:59