Проблема заключается в том, что вы создаете только один элемент img, и затем перезаписываете его каждый раз в цикле. Чтобы отобразить все загруженные изображения, вам нужно создавать новый элемент img для каждого файла.
Вот пример исправленного кода:
<input type="file" id="input" multiple='multiple' accept="image" >
<div id="images"></div>
var input = document.getElementById('input');
var imagesDiv = document.getElementById('images');
input.onchange = function() {
var filesArray = this.files;
for (var i = 0; i < filesArray.length; i++) {
var file = filesArray[i];
var image = document.createElement('img');
var reader = new FileReader();
reader.onload = (function(img) {
return function(e) {
img.src = e.target.result;
};
})(image);
reader.readAsDataURL(file);
imagesDiv.appendChild(image);
}
};
Здесь мы создаем новый элемент img для каждого файла в цикле, а затем добавляем его внутрь элемента div с id "images". Обратите внимание на использование замыкания, чтобы передать элемент img в функцию onload объекта FileReader. Это необходимо, чтобы изображения отображались в правильном порядке.