image_width&上传时image_height为空(PHP / Codeigniter)

时间:2014-01-06 17:20:00

标签: php codeigniter image-uploading codeigniter-upload

我有一个间歇性的图片上传问题,我似乎无法找到答案。我正在使用Codeigniter,但这可能只是一个与PHP相关的问题。

我正在进行简单的单张图片上传。在所有情况下,文件上传都很好。然后我尝试访问上传数据以确定高度和宽度。大多数上传数据已填充,但高度和宽度为空白。这只适用于某些图像,其他图像效果很好。

有人指出我正确的方向吗?有什么想法吗?这里有一些我没看到的东西。

以下是我收到的上传数据的示例:

[upload_data] => Array (
  [file_name] => example.jpg
  [file_type] => image/jpe
  [file_path] => path/to/file/
  [full_path] => path/to/file/example.jpg
  [raw_name] => example
  [orig_name] => example.jpg
  [client_name] => myPic.jpg
  [file_ext] => .jpg
  [file_size] => 568.02
  [is_image] => 1
  [image_width] =>
  [image_height] =>
  [image_type] =>
  [image_size_str] =>
)

2 个答案:

答案 0 :(得分:0)

list($width, $height, $type, $attr) = getimagesize("path/for/the/file");

http://www.php.net/manual/en/function.getimagesize.php

答案 1 :(得分:0)

通过大量的反复试验,我找到了问题的原因,但没有找到解决方案。但是,据我所知,原因与亚马逊的S3存储有关,而不是CodeIgniter或PHP。所以我正在考虑回答这个问题,因为它被标记为PHP / Codeigniter问题。

简而言之,这就是我找到的。 Codeigniter使用'getimagesize'就像你在PHP中一样。所以我开始在CI之外进行测试,只是在不同的JPEG上调用getimagesize。

访问服务器/实例本地存储的图像时,无论属性如何,一切正常。

当我访问亚马逊S3存储上的图像时,其“颜色表示”属性设置为“sRGB”的JPEGS会导致getimagesize返回false。那些没有财产的人工作得很好。

因此,在S3上存储图像会导致问题。但这是另一篇文章的主题。

感谢您对此人的意见。