Зона загрузки принимает файлы, которые на неё перетащили, выбрали в окне выбора файлов или вставили. Перетащенные папки читаются целиком, и каждый файл сохраняет свой путь.
Каждый файл проверяется по accept, maxSize, minSize, maxFiles и вашей функции validate, а отклонённые файлы выводятся списком с указанием причины. Для изображений показывается превью.
Без функции upload зона просто хранит файлы для формы в [(files)]. С ней — загружает их по несколько за раз, с прогрессом, отменой и повтором. Передайте signal загрузки в fetch, чтобы отмена её останавливала.
Загрузка
Имитация загрузки сообщает о прогрессе поэтапно. Файлы, в имени которых есть «fail», не загружаются, чтобы показать повтор, а directory добавляет кнопку выбора папки.
Uploaded: 0
Вложения для формы
Без upload: зона хранит до трёх документов в [(files)], а её собственный текст заменяет текст по умолчанию.