страшный «Warning: imagecreatefromjpeg (): '/ tmp / filename' не является допустимым файлом JPEG в /phpfile.php в строке xxx"

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

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

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

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

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

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

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

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

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

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

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

ini_set("gd.jpeg_ignore_warning", 1); 

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

Удачи и надежды, которые помогают.

Я также сталкиваюсь с тем же вопросом.

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

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

Надеюсь, это поможет вам … 🙂

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