Zamiast próbować wykryć typ pliku według rozszerzenia, powinieneś otworzyć plik i zobaczyć, co w nim jest.
$allowed_types = array(IMAGETYPE_GIF,IMAGETYPE_JPEG,IMAGETYPE_PNG);
if (in_array(exif_imagetype($_FILES["upload_picture"]["tmp_name"]), $allowed_types)){
//is either jpeg, png or gif
}
http://php.net/manual/en/function.exif-imagetype .php