Вы неправильно используете цикл for( in )
.Поскольку это повторяется, это душит свойство длины - которое не является Объектом Blob.Это происходит потому, что for( in )
перебирает все (перечисляемые) свойства объекта, а не только «собственные свойства». Ссылка
У вас есть два варианта:
- Придерживайтесь традиционной (и всегда работает)
for()
петля - Используйте
for( of )
loop
Цикл for( of )
будет повторять только "собственные свойства", тогда как традиционный цикл for()
всегда будет работать всегда, когда доступно свойство длины.
$('#image-upload-input').on('change', function() {
var files = document.getElementById('image-upload-input').files;
for(file of files) {
if (file) {
var reader = new FileReader();
reader.onload = function(e) {
$('.image-upload-container').append('<img src="'+ e.target.result +'" style="width: 100px;">');
}
reader.readAsDataURL(file);
}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="image-upload-input" type="file" multiple>
<div class="image-upload-container"></div>