Документация для разработчиков
Темная тема

show

Возвращает HTML и JavaScript для вывода контрола выбора и загрузки файлов. Метод подключает JS-расширение fileinput, подготавливает данные о текущих файлах и создает JS-экземпляр BX.UI.FileInput.

Синтаксис

public function show($values = array(), $getDataFromRequest = false)

Параметры

Параметр Тип По умолчанию Описание
$values array|int|string [] Текущие значения файлов. Можно передать идентификатор файла, массив с данными файла, путь к временному файлу или массив значений для нескольких полей.
$getDataFromRequest bool false Если передано true, дополнительные свойства файла берутся из текущего запроса.

Возвращаемое значение

Возвращает строку с HTML-разметкой и JavaScript-кодом контрола.

Описание

Метод анализирует переданные значения файлов и формирует элементы для уже сохраненных файлов, временных файлов или файлов, выбранных в текущем запросе. Для изображений дополнительно подготавливаются ссылки на просмотр и превью.

Если после AJAX-загрузки файл сохраняется через CFile::SaveFile, проверьте значение tmp_name. Оно может указывать на файл во временной директории в относительном виде. Перед сохранением значение должно соответствовать существующему физическому пути к файлу. Не используйте жестко заданный путь /upload/tmp: временная директория определяется настройками продукта.

Если в имени поля используется маркер #IND#, метод определяет максимальный индекс из переданных значений и передает его в JS-контрол, чтобы новые элементы продолжили нумерацию.

Пример вывода контрола

<?php
echo \Bitrix\Main\UI\FileInput::createInstance([
    'id' => 'webform_photos',
    'name' => 'FILE[n#IND#]',
    'description' => false,
    'upload' => true,
    'allowUpload' => \Bitrix\Main\UI\FileInput::UPLOAD_EXTENTION_LIST,
    'allowUploadExt' => 'jpg,jpeg,png',
    'delete' => true,
    'edit' => false,
    'maxCount' => 0,
    'maxSize' => 1024 * 1024 * 10,
])->show($files, false);
?>

Очистка выбранных файлов в JavaScript

После вызова show на странице создается объект BX.UI.FileInput. Его можно получить по JS-идентификатору контрола и удалить все выбранные файлы методом deleteFiles.

<script>
BX.ready(function() {
	var button = BX('cancel_button');

	if (button)
	{
		BX.bind(button, 'click', function() {
			var fileInput = BX.UI.FileInput.getInstance('bx_file_webform_photos');

			if (fileInput)
			{
				fileInput.deleteFiles();
			}
		});
	}
});
</script>

В примере bx_file_webform_photos сформирован из параметра id => 'webform_photos'. Если параметр id не задан, идентификатор строится из имени поля, поэтому для программного управления контролом рекомендуется всегда передавать явный id.

Важно. Метод deleteFiles очищает контрол на странице и добавляет служебные поля удаления для уже привязанных файлов. Физическое удаление сохраненных файлов выполняется при серверной обработке отправленной формы. Если пользователь нажал кнопку отмены и форма не отправляется, для удаления уже сохраненных файлов нужен отдельный серверный обработчик.

См. также

© «Битрикс», 2001-2026, «1С-Битрикс», 2026