我有这段代码:
$image = imagecreatefromjpeg($filename);
$size = getimagesize($filename, $info);
var_dump($image);
var_dump($size);
我收到了以下输出:
Warning: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error
Warning: imagecreatefromjpeg(): 'my_image.jpg' is not a valid JPEG file
bool(false)
array(7) {
[0]=>
int(22)
[1]=>
int(30)
[2]=>
int(2)
[3]=>
string(22) "width="22" height="30""
["bits"]=>
int(8)
["channels"]=>
int(3)
["mime"]=>
string(10) "image/jpeg"
}
我收到了警告,说图像不是有效的JPEG文件并且无法加载该文件,但getimagesize表明这是一个JPEG文件(mime类型)。发生了什么事情,我该如何解决?
我尝试了以下方法,但都没有帮助:
1. 检查php.ini中的memory_limit 2. 检查磁盘空间 3. 设置gd.jpeg_ignore_warning
有趣的是,本地服务器上一切正常(当然是使用相同的图像)。
getimagesize()
没有解析所有数据(它可能跳过了一些部分),而imagecreatefromjpeg
解析了所有数据。 - ComFreekimagecreatefromstring():gd-jpeg:JPEG库报告不可恢复的错误
。 - user3106462