Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to handle this error caused by uploading a problematic JPEG?

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.

Thanks

like image 595
alex Avatar asked Oct 21 '10 01:10

alex


1 Answers

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!

like image 126
mattbasta Avatar answered Nov 09 '22 22:11

mattbasta