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