Позволяет пользователю загрузить файлы в продукт.
В зону загрузки можно перетащить несколько файлов или выбрать их через системный диалог.
Для множественного загрузчика доступен компактный вид в незаполненном состоянии.
При загрузке нескольких файлов их размер всегда показан в списке, а в одиночном загрузчике показ этого параметра настраивается отдельно.
Выбранным файлам доступна настройка особенной иконки. Например, для изображений.
Компонент можно настроить, чтобы была возможность выбирать только файлы, только папки, файлы или папки.
В неактивном состоянии компонент не попадает в фокус, не работает механика перетаскивания.
При выборе невалидного файла состояние ошибки получает только соответствующий элемент в списке, а не весь компонент. Сообщения об ошибке выводятся под загрузчиком
По умолчанию компонент растет по высоте, если выбрать много файлов. Но можно настроить максимальный размер, после которого появится прокрутка.
Также возможно установить фиксированную высоту загрузчика.
Пользователь может перетащить файлы на страницу, в этот момент на весь экран будет показана паранджа загрузчика.
Областью для перетаскивания может быть не только весь экран, сам компонент File Upload в форме, но и отдельная часть экрана
По умолчанию каждый новый выбор файлов добавляется к уже загруженным — так удобно собирать список за несколько заходов.
Если нужно, чтобы новый выбор заменял предыдущий — как в обычном системном диалоге выбора файлов, — используйте addStrategy="replace".
accept попадает в одноименный атрибут нативного поля выбора файла и работает как платформенный: фильтрует состав системного диалога. Пользователь может переключить диалог на «Все файлы», а перетащенный файл с accept не сверяется.
Чтобы отклонить файл, добавьте валидатор контрола. FileValidators.isCorrectExtension принимает тот же список расширений, поэтому задайте его один раз и передайте обоим. Отклоненный файл попадает в список с сообщением об ошибке — примеры валидации собраны на вкладке «Примеры».
О файлах, которые компонент отбросил, сообщает выход (rejected): у одиночного загрузчика это файлы после первого, у множественного со стратегией concat — дубликаты уже добавленных.
Tab переводит фокус на ссылку выбора файла, затем на кнопки удаления в порядке файлов. Delete и Backspace удаляют файл, на кнопке которого стоит фокус. После удаления фокус переходит на кнопку, занявшую его место, а если список опустел — на поле выбора файла.
Добавление и удаление файлов компонент объявляет в собственном live-регионе формулировками активной локали; чтобы заменить их, используйте [localeOverrides] или kbqFileUploadLocaleConfigurationProvider.