comincia con il mettere questo a inizio file:
Poi, secondo me il controllo è meglio se lo fai sull'estensione, visto che il mimetype è riempito dal browser, e potrebbe essere diverso.codice:error_reporting(E_ALL); // report all errors ini_set("display_errors", 1);
La sicurezza che il file che ti arriva sia realmente un'immagine non ce l'hai nè con l'estensione nè con il tuo metodo, però con l'estensione fai + in fretta.
Per il resto senza errori è difficile dire cosa succeda.
Prova a vedere se con il codice che ti ho dato vedi + informazioni, altrimenti stampa a video gli array $_POST e $_FILES e cerca di capire dove si blocca.
ciao