non so come funziona $_FILES[]['type'], ma se controlla solo l'estensione "contro" una tabella con i mime-types, allora tanto vale controllare solo quella e fare a meno di $_FILES[]['type'] (restringendo anche l'array con i tipi validi alle sole estensioni). Fatti un po' stampare che cosa vede $_FILES[]['type'] e poi, tanto per prova, rinomina un file .pdf in .jpg e fai l'upload... se va a buon fine, allora il mio sospetto (file-type -> estensione -> tabella mimetypes) è fondato e il controllo non dico superfluo (bisogna controllare che cosa viene caricato!!!) ma gestibile in altro modo.