У меня есть форма на моем laravel веб-сайте с разделом, который позволяет пользователям загружать несколько файлов изображений (с предварительным просмотром выбранных изображений). Если пользователь выбирает несколько изображений только один раз, все работает, и выбранные изображения загружаются. Однако, если пользователь выбирает несколько изображений в двух разных случаях перед отправкой формы, будет загружена только последняя группа выбранных изображений.
Например; пользователь выбирает 4 изображения, затем заполняет некоторые другие поля формы, а затем решает добавить еще 3 изображения поверх 4 изображений, которые они ранее выбрали перед отправкой формы. Поле предварительного просмотра изображения будет содержать все 7 выбранных ими изображений, но как только они отправят форму, будут загружены только последние 3 изображения, которые они выбрали.
HTML Ввод нескольких файлов:
<input id="gphotos" type="file" name="gphotos[]" multiple>
<div class="preview"></div>
JavaScript:
function gphoto(input, ImagePreview) {
if (input.files) {
var fileAmount = input.files.length;
for (i = 0; i < fileAmount; i++) {
var reader = new FileReader();
reader.onload = function(e) {
$('.preview').css('margin-top', '4px');
$($.parseHTML('<img class="gphoto">')).attr('src', e.target.result).appendTo(ImagePreview);
}
reader.readAsDataURL(input.files[i]);
}
}
};
$('#gphotos').change(function() {
gphoto(this, 'div.preview');
});
Контроллер:
if (request('gphotos')) {
$imageArray['gphotos'] = array();
foreach (request()->gphotos as $gphoto) {
$gphotoPath = $gphoto->store('gphotos', 'public');
$imageArray['gphotos'][] = $gphotoPath;
}
$imageArray['gphotos'] = json_encode($imageArray['gphotos']);
}
Я хотел бы, чтобы пользователи могли выбирать несколько изображений в нескольких отдельных случаях перед отправкой формы, и все их загружаемые изображения. Я пробовал искать по всему inte rnet, но ни у кого нет простого решения этой, казалось бы, простой проблемы. Я был бы очень признателен, если бы кто-нибудь помог мне решить эту проблему.