Неограниченная загрузка файлов — это переполненный диск, тяжёлые страницы и риск заливки исполняемых скриптов. В 1С-Битрикс размер и типы файлов ограничиваются сразу на нескольких уровнях: настройки PHP, главный модуль, права на типы файлов и настройки конкретных инструментов (веб-формы, медиабиблиотека).
upload_max_filesize, post_max_size). Проверить текущие значения удобно в Настройки → Инструменты → Проверка системы и на вкладке Настройки PHP.На каких уровнях работают ограничения
В 1С-Битрикс загрузка файла проходит через несколько барьеров, и «самый строгий» из них выигрывает. Понимание этой цепочки экономит часы отладки.
- Уровень веб-сервера и PHP — параметры
upload_max_filesize,post_max_size,max_file_uploads,memory_limit. Это жёсткий потолок: если файл больше, он не дойдёт даже до ядра Битрикса. - Уровень ядра (главный модуль) — ограничения на размер картинок и файлов в визуальном редакторе, права на типы файлов.
- Уровень инструмента — отдельные настройки в веб-формах, медиабиблиотеке, свойствах инфоблоков, форме на сайте.
- Уровень прав доступа — глобальная настройка
Разрешённые для загрузки типы файлови права группы пользователей.
Если пользователь получает ошибку загрузки, проверяйте уровни сверху вниз: сначала PHP, потом настройки модуля, затем сам инструмент.
Настройки PHP: главный потолок размера
Максимальный размер загружаемого файла в первую очередь определяется настройками PHP. Ни одна настройка внутри Битрикса не позволит загрузить файл больше, чем разрешает сервер.
| Параметр | Назначение | Типовое значение |
|---|---|---|
upload_max_filesize | Максимальный размер одного файла | 16M–64M |
post_max_size | Максимальный размер всего POST-запроса | Больше upload_max_filesize |
max_file_uploads | Число файлов за один запрос | 20–50 |
memory_limit | Лимит памяти на скрипт | 256M и выше |
max_input_time | Время на приём данных | 60 и выше |
Важно: post_max_size должен быть строго больше upload_max_filesize, иначе файл предельного размера не пройдёт вместе с остальными полями формы. Текущие значения видны в Настройки → Инструменты → Проверка системы на вкладке настроек PHP.
Ограничения в настройках главного модуля
Часть ограничений задаётся в самом ядре. Перейдите в Настройки → Настройки продукта → Настройки модулей → Главный модуль.
- Откройте вкладку с параметрами загрузки и визуального редактора.
- Задайте максимальную ширину и высоту загружаемых картинок — при превышении Битрикс уменьшит изображение автоматически.
- Проверьте параметр
Максимальный размер файла для загрузки(если используется в вашей редакции) — он ограничивает вес файлов в файловом менеджере и редакторе. - Сохраните изменения.
Эти настройки касаются в первую очередь работы контент-менеджера в административном разделе и визуальном редакторе, но не заменяют ограничений для публичных форм.
Разрешённые типы файлов и безопасность
Ограничение по типу файла — это в первую очередь вопрос безопасности. Загрузка .php, .phtml, .cgi и других исполняемых файлов может привести к заливке веб-шелла.
Глобальный список задаётся в Настройки → Настройки продукта → Настройки модулей → Главный модуль в поле Разрешённые для загрузки типы файлов. Здесь перечисляются безопасные расширения, например:
- Изображения:
jpg,jpeg,png,gif,webp,svg; - Документы:
pdf,doc,docx,xls,xlsx,ppt,pptx; - Архивы:
zip,rar,7z.
Рекомендация: держите список расширений как «белый список» — перечисляйте только то, что действительно нужно, а не запрещайте опасное. Так безопаснее: новый опасный формат по умолчанию окажется вне списка. Загрузка svg требует осторожности, так как файл может содержать скрипты.
Ограничения для полей веб-форм
Публичные веб-формы — самый частый канал загрузки файлов посетителями, и здесь ограничения задаются отдельно от ядра. Перейдите в Сервисы → Веб-формы и откройте нужную форму на редактирование.
- Откройте вкладку Вопросы (поля формы).
- Добавьте или отредактируйте поле типа Файл (загрузка файла).
- В параметрах поля укажите ограничения — максимальный размер и допустимые расширения, если это предусмотрено настройками поля.
- Для строгой проверки типов используйте валидацию поля или обработчик события перед сохранением результата.
Если стандартных настроек поля недостаточно (например, нужно проверять MIME-тип, а не только расширение), проверка реализуется через событие модуля веб-форм или пользовательский обработчик. На публичных формах ограничение по типу и размеру обязательно — иначе форма становится точкой загрузки произвольных файлов.
Частые ошибки
Типичные проблемы при настройке ограничений загрузки и способы их устранения.
- Файл не загружается, а ошибки нет. Чаще всего
post_max_sizeменьше или равенupload_max_filesize— увеличьтеpost_max_size. - Изменили php.ini, но ничего не поменялось. Не перезапущен PHP-FPM/веб-сервер или правки внесены не в тот файл. Проверьте фактические значения в разделе проверки системы.
- Загрузка обрывается на больших файлах. Виноваты
max_input_time,max_execution_timeили лимиты веб-сервера (client_max_body_sizeв Nginx). - Пользователь загрузил .php через форму. Расширение отсутствует в белом списке разрешённых типов, либо проверка идёт только на клиенте — добавьте серверную валидацию.
- SVG ломает вёрстку или несёт скрипт. Ограничьте загрузку SVG или включите санитайзинг таких файлов.
- Ограничение задано в форме, но не работает глобально. Настройка поля формы не влияет на медиабиблиотеку и файловый менеджер — их лимиты настраиваются отдельно.
Итог
Ограничение размера и типов файлов в 1С-Битрикс — это многоуровневая задача, а не одна галочка. Чтобы контроль работал надёжно:
- Задайте адекватные значения
upload_max_filesizeиpost_max_sizeв PHP; - Настройте ограничения картинок и файлов в главном модуле;
- Ведите белый список разрешённых расширений и не допускайте исполняемых файлов;
- Для каждой публичной веб-формы отдельно ограничьте размер и типы вложений;
- Проверяйте типы файлов на сервере, а не только на клиенте.
Такой подход защищает сайт от переполнения диска, тяжёлых страниц и заливки вредоносных скриптов.