android - 在 Android 浏览器中使用 input type=file capture=camera 上传照片时,防止照片自动保存到图库

标签 android image upload camera autosave

我正在使用众所周知的 HTML 5 方法来捕获和上传支持最新智能手机的图像。这是我的代码:

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

在我关心的所有设备上都能完美运行。

问题是这样的:

在 Android 上,您捕获的文件会自动保存到库中。我在隐私和安全性非常重要的应用程序中实现了这一点。我们无法将文件保存到用户的设备。有谁知道防止 OS 自动保存图片的方法吗?

最佳答案

没有办法阻止保存。

在网络应用程序中,客户端是沙盒的,出于安全原因,您无法控制网站范围之外的任何内容。

但是,您可以尝试此解决方案(它不适用于所有设备):

  • 而不是使用 <input>标签,您可以使用getUserMedia 自行实现摄像头捕捉和 <canvas> .
  • 使用 <input>方法仅作为后备(以防最终用户设备不支持 getUserMedia)。

此方法将要求用户允许访问相机,但不会将其保存在用户的设备上,因为捕获已保存到内存中。
此外,如果您需要将结果保存到服务器,则必须将 Canvas 转换为数据 URI,然后将数据 URI 转换为 blob,并使用 multipart/form-data 通过 AJAX 上传 blob。

我建议谷歌“html5 camera getusermedia”了解更多信息。

关于android - 在 Android 浏览器中使用 input type=file capture=camera 上传照片时,防止照片自动保存到图库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21056026/

相关文章:

android - 如何 Intent JSONArray?

css - 水平图像清晰

image - 是否有一种算法可以确定图像是否是分形?

cakephp - 让 TinyMCE Tinybrowser 直接上传到 CakePHP webroot

php - CMS上传图片文件安全问题

php - 无法打开流 : No such file or directory , 权限问题

android - 谷歌播放服务 sdk : Requesting for offline access during auth

android - 网格布局和 API 级别

android - 从 Activity 类调用方法 (React Native Android)

html - 固定标题不会随正文水平滚动