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

Posted

技术标签:

【中文标题】在 Android 浏览器中使用 input type=file capture=camera 上传照片时,防止将照片自动保存到图库【英文标题】:Prevent auto-saving of photos to gallery when uploading photos in Android Browser using input type=file capture=camera 【发布时间】:2014-01-30 02:49:00 【问题描述】:

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

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

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

问题是这样的:

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

【问题讨论】:

我也很想看到这个问题的答案。 你找到答案了吗? 不,我没有。 【参考方案1】:

没有办法阻止保存。

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

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

您可以使用getUserMedia&lt;canvas&gt; 自行实现摄像头捕捉,而不是使用&lt;input&gt; 标签。 仅将&lt;input&gt; 方法用作备用方法(以防最终用户设备不支持getUserMedia)。

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

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

【讨论】:

以上是关于在 Android 浏览器中使用 input type=file capture=camera 上传照片时,防止将照片自动保存到图库的主要内容,如果未能解决你的问题,请参考以下文章

从 Android 原生浏览器上传时文件类型为空字符串

Android判断网络状态

在 Android 浏览器上使用自动对焦属性输入

从 Android 中的 Google 地方信息加载图像

css怎么让Android 浏览器焦点在文本输入框时不自动放大页面

表格尺寸最小