FormData пусто, если включенный файл слишком великJavascript

Форум по Javascript
Anonymous
FormData пусто, если включенный файл слишком велик

Сообщение Anonymous »

Я получаю непредвиденное поведение при отправке данных формы с помощью JavaScript и объекта FormData.
В этом примере у меня есть простая форма электронной почты с несколькими полями и полем файла для необязательного вложения.
В JavaScript у меня есть что-то вроде следующего:

Код: Выделить всё

let form = document.querySelector('form');
let formData = new FormData();
formData.append('name', form.elements['mail'].value);
formData.append('email', form.elements['email'].value);
formData.append('subject', form.elements['subject'].value);
formData.append('message', form.elements['message'].value);
formData.append('attachment', form.elements['attachment'].files[0]);

let response = await fetch('process.php', {
method: "POST",
body: formData,
});
console.log(response.text();
На сервере у меня есть что-то вроде:

Код: Выделить всё

#   .user.ini
post_max_size=8M
upload_max_filesize=8M
чтобы установить допустимый размер вложения и:

Код: Выделить всё

//  process.php
die(print_r($_POST, true));
чтобы выгрузить содержимое загрузки.
Дело в том, что если размер прикрепленного файла превышает ограничение, массив $_POST пуст. Если прикрепленного файла нет или размер файла находится в пределах ограничения, массив $_POST заполняется, и я могу проверить ошибки и обработать его соответствующим образом.
Это не поведение, если я отправляю форму традиционным способом. Тогда я все равно получаю опубликованные данные и могу проверить их и отправить соответствующий отзыв.
Как мне получить опубликованные данные, даже если вложение слишком велико?

Подробнее здесь: https://stackoverflow.com/questions/798 ... -too-large

Вернуться в «Javascript»