#Признаки проблемы и применимость
Файлы медиабиблиотеки Битрикс не загружаются при определённом размере: ошибка может возникнуть ещё на границе веб-сервера или внутри PHP. Ограничение upload_max_filesize действует на один файл, post_max_size — на весь POST; дополнительно влияют временное место и настройки самого компонента.
#Причины и отличительные признаки
| Возможная причина | Как узнать | Что делать |
|---|---|---|
| Превышен лимит тела запросаПревышен лимит тела запроса. 413 до передачи в PHP или форма сразу отказывает | 413 до передачи в PHP или форма сразу отказывает | Сопоставить лимиты прокси и веб-сервера |
| PHP отклоняет файлPHP отклоняет файл. В журнале UPLOAD_ERR_INI_SIZE или POST пуст | В журнале UPLOAD_ERR_INI_SIZE или POST пуст | Проверить активные upload_max_filesize/post_max_size |
| Не хватает временного места/правНе хватает временного места/прав. Небольшие файлы проходят, большие обрываются на сохранении | Небольшие файлы проходят, большие обрываются на сохранении | Проверить upload_tmp_dir, диск, каталог назначения |
#Пошаговая диагностика и исправление
- Определите порог ошибкиСоздайте два безвредных файла одинакового типа с известными размерами — например 1 и 20 МБ. Через штатную медиабиблиотеку загрузите сначала малый, затем больший и запишите ответ. Не тестируйте на чужих документах и не увеличивайте лимиты выше потребностей сайта.
- Посмотрите ответ браузераНажмите F12 → «Сеть» и повторите одну загрузку. HTTP 413 обычно означает отказ веб-сервера или прокси по размеру тела. HTTP 500 требует просмотра журнала PHP. Если запрос не отправлен, исследуйте ограничения интерфейса и JavaScript.
- Уточните действительные лимиты выбранного веб-пулаЧерез настройки PHP в панели управления именно этого домена посмотрите upload_max_filesize и post_max_size. Второй должен учитывать общий размер тела формы, а не быть меньше первого. Значения php -i по SSH могут относиться к другой версии PHP и не подтверждают настройки сайта.
- Проверьте PHP и диск без изменения настроекЕсли есть доступ SSH к серверу, посмотрите свободное место на разделе, где находятся временные файлы. Затем изучите сообщения сервера по времени загрузки. Команда показывает свободное место, но не проверяет квоты конкретного пользователя.
- Только Linux SSH; квоты и отдельный временный каталог проверяйте в панели хостингаLinux · Терминал (Bash)Только проверкаТолько Linux SSH; квоты и отдельный временный каталог проверяйте в панели хостинга.
df -h
- Согласуйте пределы всех уровнейНа тестовой копии установите минимально достаточные лимиты PHP, проверьте client_max_body_size для Nginx или аналогичные ограничения другого прокси и настройки загрузки Битрикс. Действовать следует только после фиксации исходных параметров и понимания, какой слой ответил ошибкой.
- Проверьте доступ к временным и целевым папкамВ настройках сервера уточните upload_tmp_dir, а в «Проверке системы» Битрикс — доступ к каталогу загрузки. Не ставьте 777 рекурсивно. Если PHP-FPM не может записать временный файл, исправьте только права нужной директории с администратором.
- Примените настройку и повторите испытаниеИспользуйте предусмотренное панелью действие применения PHP, при необходимости безопасную перезагрузку нужного пула в согласованное окно. Повторите оба файла и проверьте их отображение в медиабиблиотеке. Если теперь не проходят и маленькие файлы, верните исходные лимиты и ищите новую ошибку.
#Проверка результата
Файлы в пределах утверждённого размера загружаются и открываются, превышение лимита даёт понятную контролируемую ошибку, другие формы сайта работают.
#Что делать, если не помогло
Если POST проходит, но изображение не обрабатывается, проверьте GD/Imagick, память и генерацию миниатюр; это другой этап, не исправляемый одним upload_max_filesize.