move image type checking to constructor, so checking will be done in all cases

check if the relevant image handling function exists when deciding if the image type is supported
This commit is contained in:
Craig Andrews 2010-03-11 20:12:32 -05:00
parent 74fd755556
commit d6e0640251
1 changed files with 15 additions and 13 deletions

View File

@ -60,6 +60,21 @@ class ImageFile
$this->filepath = $filepath;
$info = @getimagesize($this->filepath);
if (!(
($info[2] == IMAGETYPE_GIF && function_exists('imagecreatefromgif')) ||
($info[2] == IMAGETYPE_JPEG && function_exists('imagecreatefromjpeg')) ||
$info[2] == IMAGETYPE_BMP ||
($info[2] == IMAGETYPE_WBMP && function_exists('imagecreatefromwbmp')) ||
($info[2] == IMAGETYPE_XBM && function_exists('imagecreatefromxbm')) ||
($info[2] == IMAGETYPE_XPM && function_exists('imagecreatefromxpm')) ||
($info[2] == IMAGETYPE_PNG && function_exists('imagecreatefrompng')))) {
@unlink($_FILES[$param]['tmp_name']);
throw new Exception(_('Unsupported image file format.'));
return;
}
$this->type = ($info) ? $info[2]:$type;
$this->width = ($info) ? $info[0]:$width;
$this->height = ($info) ? $info[1]:$height;
@ -97,19 +112,6 @@ class ImageFile
return;
}
if ($info[2] !== IMAGETYPE_GIF &&
$info[2] !== IMAGETYPE_JPEG &&
$info[2] !== IMAGETYPE_BMP &&
$info[2] !== IMAGETYPE_WBMP &&
$info[2] !== IMAGETYPE_XBM &&
$info[2] !== IMAGETYPE_XPM &&
$info[2] !== IMAGETYPE_PNG) {
@unlink($_FILES[$param]['tmp_name']);
throw new Exception(_('Unsupported image file format.'));
return;
}
return new ImageFile(null, $_FILES[$param]['tmp_name']);
}