У меня странная проблема ... У меня есть форма с несколькими полями ... при отправке формы я добавляю несколько файлов изображений для данных формы и отправляю их так:
$('#newEntry').on('submit', function(e){
e.preventDefault();
const formData = new FormData(e.target);
formData.delete('images[]');
for (var i = 0; i < filesToUpload.length; i++) {
formData.append('images[]', filesToUpload[i].file, filesToUpload[i].file.name);
}
$(this)[0].submit();
});
и когда я пытаюсь echo(count($request->images))
на сервере Laravel, он выводит 0
.. и на dd($request)
.. я вижу пустой массив файлов
, но когда я отправляю ту же форму с теми же файлами непосредственно из input
поле вместо добавления данных к нему следующим образом:
<input type="file" name="images[]">
Я получаю все файлы на сервере.
Файлы успешно добавлены к formData
.. Я проверил это с помощью:
var formKeys = formData.keys();
var formEntries = formData.entries();
do {
console.log(formEntries.next().value);
} while (!formKeys.next().done)
Я также пытался посылать те же добавленные файлы через AJAX
, и он работал отлично:
$('#newEntry').on('submit', function(e){
e.preventDefault();
const formData = new FormData(e.target);
formData.delete('images[]');
for (var i = 0; i < filesToUpload.length; i++) {
formData.append('images[]', filesToUpload[i].file, filesToUpload[i].file.name);
}
$.ajax({
url: actionURL,
data: formData,
processData: false,
contentType: false,
type: "POST",
success: function (data) {
alert("DONE");
},
error: function (data) {
alert("ERROR - " + data.responseText);
}
});
});
при копании глубже ... Я обнаружил, что когда яотправить форму через Http запрос. Ошибка с кодом 500 В консоли на мгновение появляется внутренняя ошибка сервера (незадолго до перезагрузки страницы)
перепробовал все, но не знаю, в чем причина этого странного поведения.разберись