страшное «Предупреждение: imagecreatefromjpeg ():« / tmp / filename »не является допустимым файлом JPEG в /phpfile.php в строке xxx» - PullRequest
7 голосов
/ 10 октября 2010

Я получаю это предупреждение, когда некоторые люди загружают изображения на наш сайт:

Предупреждение: imagecreatefromjpeg () [function.imagecreatefromjpeg]: gd-jpeg: библиотека JPEG сообщает о неисправимой ошибке: в/home/pathremoved/includes/snapsutils.php в строке 220

Предупреждение: imagecreatefromjpeg () [function.imagecreatefromjpeg]: '/ tmp / phpiw4MFk' не является допустимым файлом JPEG в /home/pathremoved.php настрока 220

Предупреждение: imagesx (): предоставленный аргумент не является допустимым ресурсом Image в /home/pathremoved.php в строке 222

Предупреждение: imagesy (): предоставленный аргумент недопустимРесурс изображения в /home/pathremoved.php в строке 223

Предупреждение: imagecreatetruecolor () [function.imagecreatetruecolor]: неверные размеры изображения в /home/pathremoved.php в строке 240

Предупреждение:imagecopyresampled (): предоставленный аргумент не является допустимым ресурсом Image в /home/pathremoved.php в строке 242

Это происходит только с определенными изображениями, которые при открытииed в любой программе в порядке, она даже загружает на версию сайта, которую я имею на localhost, без проблем ... Я немного погуглил, но не нашел ничего убедительного ...

примечание php upload_max размер 5M иpost_max_size составляет 5 млн.Это не проблема загрузки или памяти.Я без проблем протестировал изображения 4M.

любая помощь приветствуется.

Ответы [ 3 ]

16 голосов
/ 10 октября 2010

После небольшого поиска в Google я нашел этот отчет об ошибке . Кажется, что библиотека GD менее терпима к ошибочным файлам JPEG, чем другие программы. Предложенное решение состояло в том, чтобы настроить GD игнорировать ошибки JPEG перед обработкой изображения, например:

ini_set("gd.jpeg_ignore_warning", 1);

Надеюсь, это сработает для вас. Еще одна потенциальная проблема, с которой вы можете столкнуться, связана с памятью. Кажется, что GD хранит все изображения в памяти как растровые изображения после их открытия. Это означает, что образ размером 5 МБ может фактически потреблять больше памяти, чем разрешено одному потоку PHP, что приводит к фатальной ошибке. У меня была эта проблема с некоторыми загрузками изображений, и мне пришлось уменьшить максимальный размер файла, который я мог обойти.

Удачи и надеюсь, что это поможет.

3 голосов
/ 01 февраля 2017

У меня тоже такая же проблема.

Мы использовали приведенный ниже код, чтобы исправить эту проблему, и она работает для меня,

...
$image = @ImageCreateFromJpeg($image_name);
if (!$image)
{
   $image= imagecreatefromstring(file_get_contents($image_name));
}
...

Надеюсь, это поможет вам ...:)

0 голосов
/ 10 октября 2010

Этот образ вызывает бесконечный запрос к серверу в Firefox (3.6.10).Firefox говорит, что содержит ошибки.

...