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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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