Администрирование · 10 мин
Как загрузить файлы в 1С-Битрикс
Подробная инструкция по загрузке файлов в 1С-Битрикс: через медиабиблиотеку, файловый менеджер, инфоблоки и API. Ограничения, ошибки и проверка результата.
Загрузка файлов в 1С-Битрикс (Управление сайтом) выполняется несколькими способами: через медиабиблиотеку, файловый менеджер в административной панели, привязку к элементам инфоблоков, а также программно через API. Выбор способа зависит от того, куда именно нужен файл — на страницу сайта, в карточку товара, в структуру папок или в пользовательское свойство.
Перед загрузкой полезно понимать, как Битрикс хранит файлы. Загруженные через интерфейс файлы попадают в папку /upload/ и регистрируются в таблице файлов базы данных. Поэтому простое копирование файлов по FTP в эту папку не сделает их доступными для системы — Битрикс о них не узнает, и привязать их к элементам стандартными средствами не получится.
Ниже разобраны основные сценарии: загрузка изображений и документов в контент, работа с медиабиблиотекой, массовая загрузка, программная загрузка через API, а также типичные ограничения и ошибки.
Способы загрузки файлов: что выбрать под задачу
В Битриксе нет одной универсальной кнопки «загрузить файл» — есть несколько инструментов под разные задачи. Если нужно вставить картинку или документ на страницу, достаточно визуального редактора. Если файл должен храниться как самостоятельная сущность с возможностью повторного использования — подойдёт медиабиблиотека. Для управления структурой папок сайта (например, положить PDF в раздел «Документы») используется файловый менеджер.
Для прикрепления файлов к товарам, новостям и другим элементам инфоблоков загрузка выполняется прямо в форме редактирования элемента. А разработчикам для импорта и интеграций доступен программный способ через класс CFile.
Сравнение способов загрузки
Подходит для вставки изображений и ссылок на файлы в текст страницы. Ограничение: неудобен для десятков файлов.
Централизованное хранилище изображений, видео и аудио с коллекциями. Подходит для контент-менеджеров.
Загрузка в произвольные папки структуры сайта. Требует прав на запись в нужный раздел.
Файл привязывается к конкретному элементу (товару, новости). Подходит для карточек и каталогов.
Массовая загрузка и интеграции. Требует навыков разработки на PHP.
Загрузка файла через визуальный редактор
Самый частый сценарий — вставить изображение или ссылку на документ в текст страницы. Откройте страницу на редактирование (в публичной части через кнопку «Изменить страницу» или из административного раздела). В визуальном редакторе установите курсор в нужное место текста.
Для изображения нажмите кнопку с иконкой картинки на панели редактора, затем «Загрузить с компьютера». Выберите файл, при необходимости задайте уменьшение размера и подпись. Для документа (PDF, DOCX и т.п.) выделите текст ссылки, нажмите кнопку вставки ссылки и в диалоге выберите загрузку файла на сервер — редактор создаст ссылку на скачивание.
После сохранения страницы проверьте результат в публичной части: изображение должно отображаться, ссылка на документ — открываться или скачиваться. Если вместо картинки вы видите «битую» иконку, чаще всего проблема в правах на папку /upload/.
- 1Откройте страницу на редактирование в визуальном редакторе
- 2Установите курсор в место вставки и нажмите кнопку изображения или ссылки
- 3Выберите «Загрузить с компьютера» и укажите файл
- 4При необходимости задайте размер, подпись и выравнивание
- 5Сохраните страницу и проверьте отображение в публичной части
Работа с медиабиблиотекой
Медиабиблиотека — централизованное хранилище медиафайлов, доступное в разделе «Контент → Медиабиблиотека». Она поддерживает коллекции (папки) трёх типов: изображения, видео и аудио. Удобна, когда одни и те же файлы используются на разных страницах и с ними работают несколько контент-менеджеров.
Для загрузки откройте нужную коллекцию или создайте новую, нажмите «Добавить элемент» → «Загрузить новый». Можно выбрать несколько файлов сразу — они загрузятся пакетом. Для каждого элемента доступны название, описание и ключевые слова, которые потом упрощают поиск.
Вставка файла из медиабиблиотеки на страницу выполняется через тот же диалог изображения в редакторе: вместо загрузки с компьютера выберите вкладку «Медиабиблиотека» и укажите нужный элемент. Преимущество подхода — при замене файла в коллекции можно обновить его централизованно, не редактируя каждую страницу.
Загрузка через файловый менеджер
Файловый менеджер находится в административной панели: «Контент → Структура сайта → Файлы и папки». Здесь отображается реальная файловая структура сайта, и можно загружать файлы в любую папку, на которую у пользователя есть права записи.
Перейдите в нужную папку (например, /upload/docs/ или создайте новую), нажмите «Загрузить файл» на контекстной панели. В форме можно добавить несколько файлов через кнопку «Ещё». После загрузки файлы сразу доступны по прямому URL вида /upload/docs/имя_файла.pdf.
Этот способ удобен для документов, прайс-листов, архивов, на которые нужно давать прямые ссылки. Учтите: имена файлов лучше задавать латиницей без пробелов — кириллические имена могут некорректно обрабатываться в ссылках и при обмене с внешними системами.
Привязка файлов к элементам инфоблоков
Если файл относится к конкретному товару, новости или статье, загружайте его прямо в карточке элемента. Откройте элемент инфоблока на редактирование («Контент» → нужный инфоблок → элемент). Поля типа «Файл» — например, «Детальная картинка», «Файл инструкции» — имеют кнопку выбора и загрузки.
Для множественных свойств типа «Файл» (галерея товара, набор документов) добавляйте значения кнопкой «Добавить». Каждый файл можно снабдить описанием, которое выводится в шаблоне. Порядок файлов меняется перетаскиванием или сортировкой, если она предусмотрена настройкой свойства.
Массовая загрузка изображений к товарам обычно выполняется не вручную, а через импорт (CSV, CommerceML) или обмен с 1С. При обмене с 1С картинки номенклатуры передаются автоматически вместе с товарами — вручную их загружать не нужно, достаточно корректно настроенной интеграции на стороне «Магазин → Интеграция с 1С».
Перед массовым импортом изображений сделайте тестовый прогон на 5–10 элементах и проверьте, как файлы легли в свойства. Ошибка в сопоставлении полей на полном каталоге потом требует долгой ручной чистки.
Программная загрузка через API
Для интеграций и скриптов используется класс CFile. Типовой приём — сохранить файл из временной папки или из массива $_FILES и получить его ID, который затем привязывается к элементу инфоблока или свойству.
// Загрузка из массива $_FILES
$fileId = CFile::SaveFile($_FILES['attach'], 'iblock');
if ($fileId > 0) {
// Привязка к элементу инфоблока
CIBlockElement::SetPropertyValuesEx($ELEMENT_ID, $IBLOCK_ID, ['DOCS' => $fileId]);
}Метод CFile::SaveFile копирует файл в /upload/, регистрирует его в базе и возвращает ID. Второй параметр — подпапка внутри /upload/, помогает поддерживать порядок. Для обновления файла у элемента старое значение удаляют через CFile::Delete, иначе в хранилище копятся «сироты».
При написании скриптов массовой загрузки учитывайте нагрузку: обрабатывайте файлы порциями, проверяйте результат каждого вызова и логируйте ошибки. Запускать такие скрипты лучше на копии сайта или вне пиковой посещаемости.
Ограничения и типичные ошибки при загрузке
Максимальный размер загружаемого файла ограничен настройками PHP: директивы upload_max_filesize и post_max_size в php.ini. Если файл не загружается без явной ошибки, первым делом проверьте эти значения, а также max_execution_time — большие файлы по медленному каналу могут не успевать загрузиться.
Вторая частая причина сбоев — права на папку /upload/. Веб-сервер должен иметь право записи в неё и во вложенные папки. Признак проблемы: файл вроде загружается, но не отображается, а в логах сервера — ошибки доступа. Также проверьте свободное место на диске: при переполнении загрузка обрывается молча.
Отдельная группа ошибок связана с типами файлов. В настройках главного модуля и групп пользователей есть списки разрешённых расширений; исполняемые файлы (php, phtml и подобные) в /upload/ по умолчанию блокируются из соображений безопасности — это норма, а не сбой.
Как проверить результат
Изображение видно, ссылка на документ скачивается
Битая иконка, ошибка 404 или 403 при переходе
Веб-сервер пишет в папку, новые файлы появляются
Ошибки записи в логах, файлы не сохраняются
upload_max_filesize и post_max_size больше размера файла
Файл обрывается на загрузке без сообщения
Файл виден в списке файлов и привязывается к элементам
Файл есть на диске, но система его не видит
Частые вопросы
Почему файл загрузился по FTP, но не виден в Битриксе?
Битрикс работает только с файлами, зарегистрированными в своей базе данных. Файлы, скопированные в /upload/ в обход системы, существуют на диске, но недоступны для привязки к элементам и свойствам. Загружайте через интерфейс или API.
Как увеличить максимальный размер загружаемого файла?
Измените директивы upload_max_filesize и post_max_size в php.ini (post_max_size должна быть не меньше upload_max_filesize) и перезапустите веб-сервер. Если доступа к php.ini нет, уточните возможность изменения у хостинг-провайдера.
Можно ли загрузить сразу несколько файлов?
Да. Медиабиблиотека и файловый менеджер поддерживают выбор нескольких файлов, множественные свойства инфоблоков — добавление нескольких значений. Для сотен и тысяч файлов рациональнее использовать импорт или скрипт через API.
Какие символы допустимы в именах файлов?
Безопасный вариант — латинские буквы, цифры, дефис и подчёркивание. Кириллица, пробелы и спецсимволы могут ломать ссылки и вызывать проблемы при интеграциях, поэтому их лучше избегать.
Как заменить файл, не меняя ссылки на него?
Если файл лежит по прямому пути (загружен через файловый менеджер), загрузите новую версию с тем же именем в ту же папку, предварительно удалив или перезаписав старую. Для файлов из медиабиблиотеки и инфоблоков заменяйте значение в карточке элемента — ссылки в шаблонах обновятся автоматически.
Что важно запомнить
Загружайте файлы только штатными средствами — редактором, медиабиблиотекой, файловым менеджером, инфоблоками или API, чтобы система регистрировала их в базе. Следите за лимитами PHP, правами на /upload/ и именами файлов, а перед массовыми операциями делайте резервную копию.