В элементе управления HTML-файлом имеется атрибут ACCEPT , который в теории может использоваться для этого:
<input type="file" name="ZipFile" accept="application/x-zip" />
Принимает разделенный запятыми список допустимых типов содержимого. Однако на практике большинство браузеров не применяют это, поэтому на него нельзя положиться. Он работает в Opera, но, похоже, не работает в IE или FireFox. Есть также методы JavaScript для проверки , но они просто проверяют расширения файлов и поэтому не являются надежными.
Более надежный способ - проверить фактический тип содержимого загружаемого файла. Это можно сделать с помощью свойства HttpPostedFileBase.ContentType . Даже в этом случае некоторые браузеры могут отправлять это неправильно, поэтому вы можете проверить как расширения файлов, так и типы контента.