我有这段代码:
$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 type )。发生了什么,我该如何解决这个问题?
我尝试了这个,但它没有帮助我:
有趣的是,在本地服务器上一切正常(当然使用相同的图像)。
答案 0 :(得分:1)
创建功能 isPNG
<?php
function isPNG($file){
return preg_match('/'.quotemeta('PNG').'/i', file_get_contents($file));
}
?>
编辑代码
<?php
if(preg_match('/\.(png)$/i', $filename) || isPNG($filename)){
$image = imagecreatefrompng($filename);
}else{
$image = imagecreatefromjpeg($filename);
}
$size = getimagesize($filename, $info);
var_dump($image);
var_dump($size);
?>
祝你好运!