Предотвратить автоматическое сохранение фотографий в галерее при загрузке фотографий в браузере Android с использованием типа ввода = захват файла = камера

Я использую хорошо известный HTML 5 метод захвата и загрузки изображений, который поддерживается самыми последними смартфонами. Вот мой код:

<input id="attach-file" type="file" accept="image/*" capture="camera">

Прекрасно работает на всех устройствах, которые мне небезразличны.

Проблема в следующем:

На Android файл, который вы снимаете, автоматически сохраняется в галерее. Я реализую это в приложении, где конфиденциальность и безопасность очень важны. Мы не можем сохранить файл на устройстве пользователя. Кто-нибудь знает способ предотвратить автоматическое сохранение изображений OS?


person Matt Goodwin    schedule 10.01.2014    source источник
comment
Я бы тоже хотел увидеть ответ на этот вопрос.   -  person Stephen Burns    schedule 11.08.2015
comment
Вы когда-нибудь находили ответ?   -  person Apollo    schedule 11.10.2016
comment
Нет, я этого не делал.   -  person Matt Goodwin    schedule 21.08.2018


Ответы (1)


Невозможно предотвратить сохранение.

В веб-приложениях клиентская часть изолирована, и по соображениям безопасности вы не можете контролировать что-либо за пределами вашего веб-сайта.

Однако вы можете попробовать это решение (оно не будет работать на всех устройствах):

  • Вместо использования тега <input> вы можете реализовать захват камеры самостоятельно, используя getUserMedia и <canvas>.
  • Используйте метод <input> только в качестве запасного варианта (в случае, если устройство конечного пользователя не поддерживает getUserMedia).

Этот метод потребует от пользователей разрешить доступ к камере, но он не будет сохранен на устройстве пользователя, поскольку снимки сохраняются в памяти.
Кроме того, если вам нужно сохранить результат на своих серверах, у вас будет чтобы преобразовать холст в URI данных, а затем преобразовать URI данных в большой двоичный объект и загрузить большой двоичный объект через AJAX с помощью multipart/form-data.

Я бы порекомендовал Google «html5 camera getusermedia» для получения дополнительной информации.

person CodigosTutoriales    schedule 02.04.2019