如何处理因上传有问题的JPEG而导致的错误?

时间:2010-10-21 01:24:10

标签: php error-handling gd

我有一个公众可以上传JPEG的网站。

公众中有人上传了导致网站崩溃的无效JPEG。

PHP说...

  

imagecreatefromjpeg()[function.imagecreatefromjpeg]:gd-jpeg,libjpeg:recoverable error:JPEG文件的过早结束

我不知道如何绕过这个,所以我用Google搜索并找到了this site。它告诉我要添加......

ini_set('gd.jpeg_ignore_warning', 1);

我在我的index.php(我的网站的引导程序,我做其他ini_set())中添加了该内容。

这似乎没有解决它。

如何处理无效JPEG的这种情况?我在做INI套装有什么问题吗?我在共享主机上,因此无法直接更改php.ini

我正在使用Kohana 2.3及其Image library,但我认为这并不重要。

谢谢

2 个答案:

答案 0 :(得分:9)

尝试在命令前添加@字符:

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

它很脏而且可能已经过时(更不用说慢),但它可能会让你的代码失败。

希望这有帮助!

答案 1 :(得分:5)

您通常会使用这样的imagecreatefromjpeg

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

请注意@前面的imagecreatefromjpeg,它用于抑制错误。不幸的是,我无法告诉你Kohana如何在内部做到这一点,以及是否可以说服它做同样的事情。