Это на самом деле не отвечает на ваш вопрос, но ...
Параметр $_FILE[blah]["type"]
устанавливается веб-браузером и, как таковой, является данными пользователя, которым нельзя доверять.
Вместо этого вы можете использовать exif_imagetype($_FILES["file"]["tmp_name"])
для определения истинного типа изображения.
function valid_image() {
$type = exif_imagetype($_FILES["file"]["tmp_name"]);
if (($type != IMAGETYPE_GIF) && ($type != IMAGETYPE_JPEG)) {
$this->form_validation->set_message('valid_image', 'Wrong file type..');
return false;
} else {
return true;
}
}
Редактировать: Если расширение exif не установлено, вы также можете сделать это:
$sizes = getimagesize($_FILES["file"]["tmp_name"]);
$sizes[2]
будет содержать значение, соответствующее одной из IMAGETYPE констант .
function valid_image() {
$sizes = getimagesize($_FILES["file"]["tmp_name"]);
if (($sizes[2] != IMAGETYPE_GIF) && ($sizes[2] != IMAGETYPE_JPEG)) {
$this->form_validation->set_message('valid_image', 'Wrong file type..');
return false;
} else {
return true;
}
}