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

时间:2014-01-10 22:58:35

标签: android image upload camera autosave

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

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

在我关心的所有设备上都能很好地工作。

问题是:

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

1 个答案:

答案 0 :(得分:0)

无法阻止保存。

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

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

  • 您可以使用<input>getUserMedia来自己实现相机捕获,而不是使用<canvas>标签。
  • 仅将<input>方法用作备用方法(以防最终用户设备不支持getUserMedia)。

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

我建议Google“ html5 camera getusermedia”以获得更多信息。