Нет, вы не можете доверять переменной $_FILES['userfile']['type']
.Значение, присутствующее в этой переменной, может быть подделано.Вы можете использовать finfo_file
для более надежного определения типа файла:
$finfo = finfo_open(FILEINFO_MIME_TYPE); // we need mime type
echo finfo_file($finfo, "/path/to/uploaded/file"); // displays something like image/gif
finfo_close($finfo);
Для этих функций требуется PHP> = 5.3.0.