Проверка может быть лучше выполнена на стороне сервера.
В основном я бы порекомендовал вам 2 шага для проверки размера:
1) Проверка заголовков HTTP для длины содержимого. request.getContentLength ()
2) Если заголовки недоступны, выполните проверку фактического размера при чтении входного потока. Поэтому, если вы достигнете предела, вы можете выбросить исключение.
На стороне клиента gwt вы можете проверить исключение и показать соответствующую ошибку.
Определение типа файла может быть не таким простым. Вы можете просто проверить расширение имени файла или использовать определенные проверки типа файла после того, как файл фактически загружен на сервер.