"Gd-jpeg, libjpeg: восстанавливаемая ошибка: преждевременный конец файла JPEG" в 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 () для последующей обработки изображения.

В определенные моменты локально сохраненное изображение было повреждено во время процесса хранения и когда вызвано imagecreatefromjpeg ($ imagePath); PHP Warning: imagecreatefromjpeg (): gd-jpeg, libjpeg: восстанавливаемая ошибка: произошел преждевременный конец файла JPEG. появился.

Поэтому, чтобы разрешить предупреждения PHP и восполнить поврежденное изображение, я использовал четко определенное решение в руководстве PHP ( http://php.net/manual/en/function.imagecreatefromjpeg.php ), чтобы увидеть функцию LoadJpeg ($ imgname )

Чтобы предотвратить дальнейшие сбои, я сосредоточился на том, почему данные, предоставленные для функции imagecreatefromjpeg (), не были в первую очередь неинтегрированы. В моем случае это была проблема сетевого потока, которая вызывала повреждение некоторых изображений.

Короче говоря, вы можете проверить, что именно передается в функцию imagecreatefromjpeg (), прежде чем пытаться расширить базовую библиотеку и т. Д.

Попробуйте добавить @imagecreatefromjpeg ($ img) вместо imagecreatefromjpeg ($ img)

здесь @ является подавителем ошибок