上传时图像宽度和图像高度为空(PHP / Codeigniter)

r6vfmomb  于 2022-12-07  发布在  PHP
关注(0)|答案(2)|浏览(141)

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

62o28rlo1#

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

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

des4xlb0

des4xlb02#

通过大量的试验和错误,我找到了问题的原因,但没有找到解决方案。然而,据我所知,问题的原因与Amazon的S3存储有关,而不是CodeIgniter或PHP。所以我认为这个问题已经回答了,因为它被标记为PHP/Codeigniter问题。
简单地说,我发现了以下内容。Codeigniter使用“getimagesize”,就像在PHP中一样。所以我开始在CI之外进行测试,只是在不同的JPEGS上调用getimagesize。
当访问本地存储在服务器/示例上的映像时,无论其属性如何,一切都正常。
当我访问Amazon的S3存储上的图像时,“颜色表示”属性设置为“sRGB”的JPEGS会导致getimagesize返回false,而没有设置该属性的JPEGS则可以正常工作。
因此,在S3上存储图像的某些方面导致了一个问题,但这是另一篇文章的主题。
谢谢大家对这一点的投入。

相关问题