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.imagecreatefrom开发者_高级运维jpeg]: 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.
精彩评论