Почему не удается получить файлы размером более 10 МБ из формы обратной связи Contact Form 7?

Здравствуйте. Я создал форму с использованием плагина Contact Form 7 и MultiLine files for Contact Form 7 для отправки сообщений с файлами. Установил лимит в форме на 250 МБ и настроил соответствующие параметры на сервере. Однако, при отправке файлов размером более 10 МБ, они не прикрепляются к письму, в то время как файлы до 10 МБ прикрепляются успешно. Я предполагаю, что где-то есть скрытое ограничение на объем одного файла, но не могу найти, где именно. Что еще я могу проверить или изменить, чтобы решить эту проблему?
  • 6 февраля 2024 г. 10:09
Ответы на вопрос 3
Если вы столкнулись с проблемой отправки файлов большего размера через Contact Form 7, вам нужно проверить несколько потенциальных проблемных мест:

1. **Настройки Contact Form 7**: Убедитесь, что в настройках плагина Contact Form 7 указано верное значение максимального размера файла. Это можно сделать добавив или изменяя параметр `[file your-file limit:262144000]` в теле формы, где `262144000` – это максимальный размер файла в байтах (в данном случае 250 МБ).

2. **Настройки PHP на сервере**: Убедитесь, что в конфигурационном файле `php.ini` на вашем сервере заданы достаточно высокие значения для следующих параметров:
   - `upload_max_filesize` – максимальный размер загружаемого файла.
   - `post_max_size` – максимальный размер данных отправляемых через POST-запрос.
   - `memory_limit` – максимальный объем памяти, доступной скрипту.
   - `max_execution_time` – максимальное время выполнения скрипта.
   - `max_input_time` – максимальное время, в течение которого скрипт должен обрабатывать входящие данные.

   Так, для отправки файлов размером до 250 МБ, эти параметры должны быть примерно такими:
   ```
   upload_max_filesize = 256M
   post_max_size = 256M
   memory_limit = 256M
   max_execution_time = 300
   max_input_time = 300
   ```

3. **Настройки веб-сервера**: Если вы используете Apache, проверьте, не ограничивает ли директива `LimitRequestBody` размер тела HTTP-запроса. Для Nginx проверьте значение директивы `client_max_body_size`.

4. **Время ожидания сервера**: При отправке больших файлов процесс может занять больше времени, и сервер может прервать соединение по тайм-ауту. Убедитесь, что настройки сервера (или прокси-сервера, если он используется) позволяют достаточно длительное время обработки запроса.

5. **Проверка JavaScript и AJAX**: Если форма отправляется через AJAX, возможно, есть ограничение на размер отправляемых данных на стороне клиента. Проверьте, нет ли такого ограничения в коде Javascript вашего сайта.

6. **Логи сервера**: Проверьте логи web-сервера и PHP на наличие ошибок, которые могут указывать на проблемы при загрузке больших файлов.

7. **Лимиты хостинга**: Если ваш сайт размещен на shared хостинге, возможно, что хостинг-провайдер установил свои ограничения на загрузку файлов, несмотря на локальные настройки `php.ini`.

Если всё вышеперечисленное проверено и настроено правильно, но проблема остаётся, следует обратиться в поддержку вашего хостинг-провайдера для уточнения возможных ограничений с их стороны или для дополнительной диагностики проблемы.
Ограничение на стороне почтового сервера
Не думаю что так, .т.к. на этот же ящик я могу отправить письмо с другого ящика и свободно приложить файл на 20-30мб и оно приходит.
Похожие вопросы