Pones filtros demasiado sencillos, bypassea este que acabo de improvisar a ver si puedes:
Código: text
$extension = end(explode(".", $nombre));
$extensiones = array("jpg", "png", "gif", "jpeg", "bmp");
if(in_array($extension, $extensiones)){
$nombrefinal = $id.".".$extension; //$id es un numero aleatorio.
//se sube el archivo
} else {
echo "No se puede subir un archivo que no tenga extensión jpg, png, gif, jpeg, o bmp";
}










