我有这个密码:
$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类型)。发生了什么事,我该怎么解决?
我试过,但没用:
检查php.ini中的*内存限制*。
检查磁盘空间
设置*gd.jpeg_ignore_警告*
有趣的是,在本地服务器上一切正常(当然是使用相同的映像)。
最佳答案
创建函数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);
?>
祝你好运!
关于php - 图片不是有效的JPEG,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21115679/