我无法弄清楚为什么在php中使用Exif,当通过选择“现有照片”上传图片时,在这种情况下,iPhone 6plus和Samsung Android,我获得完整的exif数据,包括所有这些包括GPS数据;但是当我选择“拍照”然后通过相同的过程上传时,Exif数据被截断,我不再接近到达终点的GPS数据。它停在“... ExifImageLength”] => int(2448)“。
的末尾。这是我正在使用的脚本(这是一个更大的脚本的一部分,用于调整上传图像的大小并存储表单中的数据和上传图像的Exif数据。但我只使用下面的代码作为测试,它仍然这样做。
if (empty($_FILES['image']['name'])) {
echo 'Please choose an image!';
} else {
$temp = $_FILES['image']['tmp_name'];
$info = @exif_read_data($temp);
var_dump($info);
}
我有一个使用XAMPP的本地开发服务器,其中一切都很好用“拍摄”或“选择”图像。但是我在GoDaddy虚拟服务器Linux上遇到了这个截断的问题。
答案 0 :(得分:0)
经过长时间的研究,我发现当有人选择拍照时#34;在将照片上传到网站时,只存储基本的EXIF数据而不存储诸如GPS数据等附加内容。当他们"从图书馆中选择时#34;数据与照片一起存储,因为它已经被拍摄并存储在移动设备上。我注意到,当他们点击一个网站后拍照时,选择图像"表单输入,它不保存到移动设备,显然这就是没有记录额外数据的原因。只有当他们将照片存储在移动设备上时,才会存储额外的EXIF数据,而不是当他们绕过该数据并直接进入网站进行上传时。我甚至没有将照片存储到服务器,然后运行我的脚本以获得额外的EXIF,并且没有记录这样的信息。我已经在很多其他网站上对此进行了测试,这些网站允许您上传以获取照片的地图坐标,并且截断的结果与它们以及我创建的脚本一致。我有待纠正,但经过大量研究,这是我用实验得出的唯一结论。到目前为止,除了我的建议之外,我无处可寻找其他解释。我会把这作为我自己问题的答案,欢迎任何比我更专业的人反驳或肯定。