2 cose:
1. Potresti provare a fare l'upload di un file zip e vedere cosa mostra $HTTP_POST_FILES['link1']['type']
2. Il primo metodo funzionerebbe se il mime type fosse uguale per tutti.
Ma il mime type viene comunicato dal browser al server, quindi a seconda di quale browser usi potresti avere risultati diversi.
Io solitamente controllo l'estensione del file per determinarne il tipo, anche se poi non è un metodo assoluto.
Ciao