【发布时间】:2011-12-17 12:14:04
【问题描述】:
我正在对上传的图像使用 imagecreatefromgif / imagecreatefromjpeg / imagecreatefromjpeg 函数,当图像损坏时,有时会出现错误(例如警告:imagecreatefromgif(): ... 不是有效的 GIF 文件)。我阅读了很多关于这个主题的帖子,但找不到“有效”的答案。
我确实尝试了以下一些方法来验证图像(如其他帖子中所建议的那样),但它们都不能在所有情况下工作。如果图像没有标头信息,则以下方法有效,但如果图像具有标头/mime 类型信息并且已损坏,则不起作用。
if( imagecreatefromjpeg($uploaded_image) !== false ) {
// image is okay.
}
或
try {
$test = imagecreatefrompng($uploaded_image);
} catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
或
使用 getimagesize($uploaded_image); // 如果图像无效,将返回 false 或错误。
这些情况都不适用于具有标题信息/mime 类型信息的损坏图像文件。
我想防止出现这些错误,并在可能的情况下检测图像是否没有损坏,并且可以使用任何 imagecreatefromgif / imagecreatefromjpeg / imagecreatefromjpeg 函数而不会出现问题。如果损坏,我想显示一条错误消息而不是运行该功能。我正在寻找 PHP 中的解决方案。
感谢您的帮助和建议。
【问题讨论】:
标签: php image gd imagecreatefrompng