我正在使用众所周知的 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/