警告:imagejpeg()[function:imagejpeg]:gd-jpeg:JPEG库报告不可恢复的错误

mac*_*ack 20 php wordpress

我在我的根文件夹上安装了wordpress,

直到昨天它工作正常,但今天它给出了以下错误,因为我猜生成缩略图,

Warning: imagejpeg() [function:imagejpeg]: gd-jpeg: JPEG library reports unrecoverable error: in public_html/wp-includes/media.php on line 459
Run Code Online (Sandbox Code Playgroud)

有人对这个警告有任何想法吗?

请帮我

以下代码在第459行

if ( !imagejpeg( $newimage, $destfilename, apply_filters( 'jpeg_quality', $jpeg_quality, 'image_resize' ) ) )
Run Code Online (Sandbox Code Playgroud)

小智 34

你可能想创建一个图像从jpeg不是jpeg.

我在PHP中测试缩略图脚本时遇到了同样的错误.然后我发现输入文件的标题png虽然是扩展名.jpg.

因此,我编辑了我的脚本,以便在创建图像时出错jpeg,它会尝试从中创建它png (或者gif如果发生另一个错误).

  • 最好使用`exif_imagetype`函数而不是暴力强制 (7认同)
  • 这才是真正的答案 (5认同)

Fer*_*ndo 13

1)检查磁盘空间

您的系统必须有足够的磁盘空间

2)检查内存限制

在php中设置更多内存:

ini_set("memory_limit","256M");
Run Code Online (Sandbox Code Playgroud)

3)检查post_max_size和upload_max_filesize

在htaccess文件中设置更多:

php_value post_max_size 16M
php_value upload_max_filesize 6M
Run Code Online (Sandbox Code Playgroud)

4)把@放在函数前面

@imagejpeg(..............);
Run Code Online (Sandbox Code Playgroud)

第1点)为我工作.

  • 不要压制警告.他们是有原因的.处理它们! (20认同)

小智 5

您必须使用函数来正确确定图像的 MIME 类型。具有 jpg 扩展名的 png 图像将导致此错误。

为避免此错误,您必须获得正确的 MIME 类型的图像。

function getImage($path) {
switch(mime_content_type($path)) {
  case 'image/png':
    $img = imagecreatefrompng($path);
    break;
  case 'image/gif':
    $img = imagecreatefromgif($path);
    break;
  case 'image/jpeg':
    $img = imagecreatefromjpeg($path);
    break;
  case 'image/bmp':
    $img = imagecreatefrombmp($path);
    break;
  default:
    $img = null; 
  }
  return $img;
}
Run Code Online (Sandbox Code Playgroud)


Sim*_*amp 5

在 PHP7 上,imagecreatefromjpeg当您尝试打开无效文件时,开始抛出致命错误,甚至连@标志也无法捕获。

请改用以下内容:

$im = imagecreatefromstring(file_get_contents($filename));
if ($im !== false) { ... }
Run Code Online (Sandbox Code Playgroud)