Lo ideal es hacerlo ANTES de que envies el archivo al servidor. Es una cuestion de economizar ancho de banda (al menos para mi eso es muy importante).
El tag INPUT posee un atributo llamado
accept que funciona como filtro para los archivos. Por ejemplo, si solo quieres que acepte MIMEs de tipo image, seria si:
<input type="file" accept="image/*" />
o solo JPG y GIF
<input type="file" accept="image/gif, jpg, jpeg" />
para excel, creo que es application/xls o application/vnd.ms-excel
Para chequearlo antes de enviarlo, hay una funcion muy interesante en javascript
:
Check File Type
Un saludo