开发者

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.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜