脚本无法从目录中读取文件

时间:2013-04-03 00:12:06

标签: php exif

我有一个脚本,它从存储在给定目录中的照片中提取Exif数据,然后在网页上显示带有exif信息的图像。

以下是检索exif数据的脚本部分,此示例是硬编码图像:

    $Image = 'original/raleighbike.JPG';

    echo "$Image";

    $exif = exif_read_data($Image, 0, true);

这样可以显示exif数据。 ('echo'就是为了验证在下一部分中正在设置正确的图像以供检索 - 这是我遇到问题的地方。)

我现在使用相同的脚本从上一个脚本中上传的图像中获取exif并存储在同一目录中。 上传脚本设置一个包含图像名称和位置的变量($ Image9),exif提取脚本现在如下所示:

$Image = $Image9;

echo "$Image";

$exif = exif_read_data($Image, 0, true);

我遇到的问题是'echo'打印出正确的图像名称和位置,但exif数据为空,错误日志显示为:

[02-Apr-2013 18:45:29 America/Chicago] PHP Warning:  exif_read_data() [<a href='function.exif-read-data'>function.exif-read-data</a>]: Unable to open file in /home2/webi8726/public_html/domain.com/sqlsidebar/displayexif.php on line 23

第23行是上面引用部分的最后一行。

我无法理解为什么硬编码图像打开没有问题,但是变量识别的图像无法打开 - 即使变量包含正确的信息并指向硬编码的同一文件。

任何人都可以建议问题发生的原因。


好的 - 今天玩了更多,这就是我找到的。

1 - 在上传和存储jpg的脚本中,我将其设置的变量更改为$ photo。 $ photo应该包含jpg的名称和它存储的目录。我还设置了一个名为$ thumb的变量,它包含由上传脚本创建和存储的jpg缩略图的名称和位置。

2 - 我更改了exif提取脚本以使用$ photo变量创建一个名为$ Image的变量,该变量在exif提取后用于脚本中的各个点 - 例如,获取并显示图像以及存储图像sql数据库中的详细信息。

3 - 我设置了一些'echo'命令来验证变量的内容,并确认文件是否存在。

这是现在的脚本代码:

    $Image = $photo;

    echo "$photo";

    echo $Image;

    echo file_exists($Image) ? 'ok' : ' image file not found';

    echo file_exists($photo) ? 'ok' : '  photo file not found';

    echo $thumb;

    echo file_exists($thumb) ? 'ok' : '  thumb file not found';

    $exif = exif_read_data($photo, 0, true);

生成的echo字符串显示以下内容

original/raleighbike.jpg - content of variable $photo (correct)
original/raleighbike.jpg - content of variable $Image (correct)
image file not found - when checking for the file in $Image (incorrect, file does exist)
photo file not found - when checking for the file in $photo (incorrect, file does exist)
thumb file not found - when checking for the file in $thumb (incorrect, file does exist)
thumbnail/thumb_raleighbike.jpg

因此,如果文件是硬编码的,那么脚本可以在物理上找到它,但如果将文件指定为变量,则脚本无法找到它们。

有没有人想知道为什么会发生这种情况 - 我当然不可能是唯一一个遇到过这个问题的人; - (

0 个答案:

没有答案