Задача: Заполнение формы с анкетой (Имя, Фамилия) и несколько фоток (через multiple).
При загрузке одного фото, нет проблем с отправкой на сервер, если указываю несколько фоток, то отправляется только одна. Я решил вопрос с помощью кода ниже, но возник вопрос, если я вынужденно использую FormData(), то есть ли смысл использовать тег
<form>
? Или задача решалась как-то по другому, и form уже имеет какой-то объект с данными?
<form action="" method="post" enctype="multipart/form-data" id="myform">
<input type="file" name="images" multiple id="myimage">
<input type="text" name="name" placeholder="Имя" id="name">
<input type="text" name="lastname" placeholder="Фамилия" id="lastname">
<input type="submit">
</form>
<script>
const images = document.getElementById('myimage');
const name = document.getElementById('name');
const lastname = document.getElementById('lastname');
const my_submit = function(e) {
e.preventDefault();
let form = new FormData();
form.append('name', name.value);
form.append('lastname', lastname.value);
let a = 0;
for (let file of images.files) {
a++;
form.append('file['+ a +']', file);
}
// for (let i in images.files) { form.append('file['+ i +']', images.files[i]); }
};
const form = document.getElementById('myform');
form.addEventListener("submit", my_submit, true);
</script>
Код отправки через ajax я вырезал из кода, так как он прекрасно работает и к вопросу не относится.