移动版 Safari 中的文件上传和 EXIF

File Upload and EXIF in mobile Safari

如这些问题中所述,在某些情况下,上传到 iOS 的照片会删除其地理位置和其他 EXIF 元数据(在 safari 中):

https://apple.stackexchange.com/questions/326789/gps-exif-from-iphone-photo-upload-in-safari

Image upload from iphone strips exif data

截至目前,我还没有找到对发生这种情况的情况的适当描述。我有 2 台用于测试的设备,安装了最新的 iOS,其中 EXIF 元数据未被删除。

有没有一种方法可以确定(最有可能是在浏览器中或通过上传)元数据是否已被删除以便向用户显示某种信息?

这里有点难以理解您的用例,但是如果您的想法是在用户从您的应用程序内部上传文件时显示 EXIF 已被删除(或未删除),您可以注入一个脚本来包含此库 https://github.com/exif-js/exif-js 然后在 UIAlertView?

中显示 EXIF 数据的结果

现在有访问原始 <input type="file"> 标签信息的方法。这使您能够获取所需的 EXIF 数据,将其放入隐藏的表单字段中,并在真正上传文件时发送。

获取 EXIF:

  1. 创建一个调用函数的按钮 生成文件输入并添加更改处理程序。
  2. 然后,在文件更改处理程序中使用 $(this).get(0).files 获取所选文件的列表。
  3. 解析exif数据并将浏览结果发送至jsjpegmeta

这样你就可以得到删除前的所有exif信息。

我现在可以告诉你,如果我使用默认设置 -> 相机 -> 格式设置,我的 iPhone X 和 IOS 13.3(当前)exif 数据会被删除,是 'High Efficiency'。但如果我将其更改为 'Most Compatible',则不会删除 EXIF 数据。如果我在上传之前完全不在我的 phone 上处理照片,这些结果是一致的。

看起来在 'High Efficiency' 模式下拍摄的照片如果首先在 phone 上进行了编辑,则可以使用 EXIF 数据上传 - 但我没有进行广泛的测试来验证这是否是总是这样或者在什么条件下总是有效。