![](/img/trans.png)
[英]imagecreatefromstring(): gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file
[英]“gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file” in Codeigniter
我正在使用 CodeIgniter 并尝试创建图像拇指。 我在某些情况下成功,但在某些情况下失败了。 我收到以下错误 -
<< A PHP Error was encountered
Severity: Notice
Message: imagecreatefromjpeg(): gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file
Filename: libraries/Image_lib.php
Line Number: 1155 >>
我在“image_lib”库加载后使用了此代码。
ini_set('gd.jpeg_ignore_warning', 1);
任何解决方案? 提前致谢!
问题是函数imagecreatefromjpeg
没有开启错误抑制
最好的选择是扩展基础库并重载image_create_gd
方法
创建一个新文件./application/libraries/MY_Image_lib.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
Class MY_Image_lib extends CI_Image_Lib {
function image_create_gd($path = '', $image_type = '')
{
if ($path == '')
$path = $this->full_src_path;
if ($image_type == '')
$image_type = $this->image_type;
switch ($image_type)
{
case 1 :
if ( ! function_exists('imagecreatefromgif'))
{
$this->set_error(array('imglib_unsupported_imagecreate', 'imglib_gif_not_supported'));
return FALSE;
}
return @imagecreatefromgif($path);
break;
case 2 :
if ( ! function_exists('imagecreatefromjpeg'))
{
$this->set_error(array('imglib_unsupported_imagecreate', 'imglib_jpg_not_supported'));
return FALSE;
}
return @imagecreatefromjpeg($path);
break;
case 3 :
if ( ! function_exists('imagecreatefrompng'))
{
$this->set_error(array('imglib_unsupported_imagecreate', 'imglib_png_not_supported'));
return FALSE;
}
return @imagecreatefrompng($path);
break;
}
$this->set_error(array('imglib_unsupported_imagecreate'));
return FALSE;
}
}
尝试添加 @imagecreatefromjpeg($img) 而不是 imagecreatefromjpeg($img)
这里@是错误抑制器
我遇到了完全相同的问题。 我首先将图像数据存储在本地 HDD 上,然后再使用函数imagecreatefromjpeg()进一步对图像进行后处理。
在某些时候,本地存储的图像在存储过程中和被imagecreatefromjpeg($imagePath)调用时被损坏; PHP 警告: imagecreatefromjpeg():gd-jpeg,libjpeg:可恢复错误:JPEG 文件过早结束。 出现。
因此,为了解决 PHP 警告并弥补损坏的图像,我在 PHP 手册( http://php.net/manual/en/function.imagecreatefromjpeg.php )中使用了明确定义的解决方案,请参阅函数LoadJpeg($imgname )
为了防止进一步的失败,我首先将重点放在提供给imagecreatefromjpeg()函数的数据不完整的原因上。 就我而言,是网络泛滥问题导致某些图像到达损坏。
长话短说,在尝试扩展基础库等之前,您可能想检查一下提供给imagecreatefromjpeg()函数的究竟是什么。
当我收到此错误时,我检查了我的 JPG 文件是否已损坏。 考虑检查你的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.