Будни разработчика
14.7K subscribers
1.18K photos
334 videos
7 files
2.01K links
Блог Lead JS-разработчика из Хельсинки
Автор: @bekharsky

По рекламе: https://telega.in/channels/htmlshit/card?r=GLOiHluU или https://t.me/it_adv

Чат: https://t.me/htmlshitchat

№5001017849, https://www.gosuslugi.ru/snet/679b74f8dad2d930d2eaa978
Download Telegram
#фишка дня

Используя такие атрибуты input[type="file"] как capture и accept можно дать пользователю возможность сделать фото или снять видео на своём мобильном устройстве и сразу загрузить на сервер.

Атрибут capture может принимать значения user (для фронтальной) или environment (для основной камеры, или оставить пустым). Но на Android 10 (Chrome 90) такой выбор не работает.

Если не указать capture вообще, Android и iOS дадут варианты: включить камеру или выбрать из файловой системы.

А вот с accept всё ещё более интересно. Передавать в него нужно точный или универсальный (wildcard) MIME-тип. И вот тут есть нюанс.

И Android и iOS правильно обрабатывают image/* или video/*, соответственно выбирая нужный режим съёмки. Но вот если опустить accept вообще, iOS даст выбрать режим, а Android — просто включит фото.

В любом случае, я уже давно использую это в проектах и вам советую.

P. S. это не работает на десктопах 🚫

#file #upload #capture