0

我有一个间歇性的图片上传问题,我似乎无法找到答案。我正在使用 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] =>
)
4

2 回答 2

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

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

于 2014-01-07T13:58:22.237 回答
0

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

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

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

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

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

感谢大家对此的意见。

于 2014-01-07T16:13:13.393 回答