将文件移动到其他服务器后,为什么exif_read_data()无法正常工作?

时间:2015-07-09 02:10:43

标签: php exif

我正在尝试将程序从一个服务器移动到另一个服务器,并且相同的脚本将无法工作,我无法弄清楚为什么......以下是我的脚本的缩小版本失败:

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
$string=file_get_contents("../photos/report14/concreteCurb/baseCompaction1.jpeg");
$exif = exif_read_data("data:image/jpeg;base64," . base64_encode($string));
print_r($exif);
?>

工作的服务器吐出一个简单的

Array ( [FileName] => Z [FileDateTime] => 0 [FileSize] => 137976 [FileType] => 2 [MimeType] => image/jpeg [SectionsFound] => COMMENT [COMPUTED] => Array ( [html] => width="773" height="1000" [Height] => 1000 [Width] => 773 [IsColor] => 1 ) [COMMENT] => Array ( [0] => CREATOR: gd-jpeg v1.0 (using IJG JPEG v90), quality = 90 ) )

...但是那个不抛出......

Warning: exif_read_data(): Unable to open file in /nfs/c11/h01/mnt/208416/domains/s208416.gridserver.com/html/advantage/scripts/test.php on line 5

两者都启用了EXIF支持(版本1.4)。旧服务器上的PHP版本是5.3.5而新版本是5.5.21,但我也尝试将其恢复为5.3.29无效。

1 个答案:

答案 0 :(得分:1)

只是想一想,但是如果你在CentOS盒子上运行它(可能与linux发行版没有直接关系),你应该尝试将文件的绝对路径添加到这样的路径:

$string = file_get_contents(dirname(__FILE__) . '../photos/report14/concreteCurb/baseCompaction1.jpeg');

过去,我已经解决了类似的问题。