comincia con il mettere questo a inizio file:

codice:
error_reporting(E_ALL); // report all errors
ini_set("display_errors", 1);
Poi, secondo me il controllo è meglio se lo fai sull'estensione, visto che il mimetype è riempito dal browser, e potrebbe essere diverso.
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