Я создаю загрузчик файлов, в котором пользователь выбирает фотографии одну за другой, используя ввод файла, и добавляет его в лоток (предварительный просмотр) с помощью API чтения файлов HTML. Моя проблема заключается в том, что когда выбрано первое изображение, оно добавляется в лоток один раз правильно, когда выбрано второе фото, оно добавляется дважды, когда выбрано третье, оно добавляется трижды. Это подразумевает n предварительных просмотров для n-й фотографии. Я не знаю, что делаю неправильно, пожалуйста, помогите.
Мой код
//Event handler for image upload button click
$('body').on('click', '#add-default-pic', function (event) {
event.preventDefault();
$('#default-pic-chooser').trigger('click');
//Wait for #photo file input to change
$('#default-pic-chooser').on('change', function () {
if ($('#default-pic-chooser').val() !== '') {
//Do checks to see if photo is valid
if (isImage($('#default-pic-chooser').val())) {
} else {
$('.info').html('Sorry your picture format is not supported');
$('#infoModal').modal();
return;
}
}
if (typeof (FileReader) != 'undefined') {
reader = new FileReader();
//Run this function when file is ready
reader.onload = function (e) {
img = e.target.result;
$('.default-pics-area').append('<img src="' + img + '" style="padding:0px; width:auto; height:auto; max-width:100%; max-height:150px;"/>');
// alert("whats on:"+img);
if ($('#default-pic-chooser').val() !== '') {
var route = base + '/pics/default/upload';
var photo = document.getElementById('default-pic-chooser').files[0]; //grapping photo file
// uploadPhoto(route,photo);
upload(route, photo, 'photo');
}
};
//Trigger the onload function
reader.readAsDataURL($(this) [0].files[0]);
} else {
alert('OOPS! you wont be able to preview your image because your browser does not support this feature...');
}
});
});