php – How to handle this error caused by uploading a problematic JPEG? – Education Career Blog

I have a website where the public can upload JPEGs.

Someone from the public was uploading an invalid JPEG that was causing the site to crash for them.

PHP said…

imagecreatefromjpeg() function.imagecreatefromjpeg: gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file

I wasn’t sure how to get around this, so I Googled and found this site. It told me to add…

ini_set('gd.jpeg_ignore_warning', 1);

I added that in my index.php (the bootstrap of my site, where I do other ini_set()).

This didn’t seem to fix it.

How can I handle this case of invalid JPEGs? Am I doing something wrong with the INI set? I’m on a shared host so I can’t change php.ini directly.

I’m using Kohana 2.3, and its Image library, but I don’t think it is really relevant here.



Try sticking an @ character before the command:

$image = @imagecreatefromjpeg("file.jpg");
if(!$image) die("Sorry, bad JPEG");

It’s dirty and probably obsolete (not to mention slow), but it’ll probably make your code not fail.

Hope this helps!


You would usually work with imagecreatefromjpeg like this:

$img = @imagecreatefromjpeg($file);
if (!$img) {
    // handle error yourself

Note the @ in front of imagecreatefromjpeg, which is used to suppress errors. Unfortunatly I can’t tell you how Kohana does this internally and if it could be persuaded to do the same thing.

Leave a Comment