Единственный способ действительно ограничить типы загружаемых данных - это проанализировать данные на сервере после их загрузки.
Любую проверку на стороне клиента можно обойти. Вы могли бы добавить больше сложности к проверке на стороне клиента (добавив проверки на байты в файле через FileReader), но если кто-то собирается пропустить ваши существующие проверки на стороне клиента, это вряд ли остановит их.
Например, в PHP см. этот вопрос .