Как загрузить файлы определенного типа? - PullRequest
0 голосов
/ 21 апреля 2010

Я использую ASP.NEt MVC. Я хочу загрузить файлы .zip, для которых я использую элемент управления загрузкой входного файла html. Я хочу, чтобы загружались только файлы .zip. Есть ли способ или атрибут для определения и достижения этого?

спасибо, Капил

Ответы [ 3 ]

4 голосов
/ 21 апреля 2010

В элементе управления HTML-файлом имеется атрибут ACCEPT , который в теории может использоваться для этого:

<input type="file" name="ZipFile" accept="application/x-zip" />

Принимает разделенный запятыми список допустимых типов содержимого. Однако на практике большинство браузеров не применяют это, поэтому на него нельзя положиться. Он работает в Opera, но, похоже, не работает в IE или FireFox. Есть также методы JavaScript для проверки , но они просто проверяют расширения файлов и поэтому не являются надежными.

Более надежный способ - проверить фактический тип содержимого загружаемого файла. Это можно сделать с помощью свойства HttpPostedFileBase.ContentType . Даже в этом случае некоторые браузеры могут отправлять это неправильно, поэтому вы можете проверить как расширения файлов, так и типы контента.

0 голосов
/ 21 апреля 2010

Никогда не доверяйте клиенту!

Проверка HTML или Javascript ничего не стоит.Вы могли бы обойти это!Поэтому проверьте файлы и типы файлов на сервере.Например с PHP, JSP и т. Д.

0 голосов
/ 21 апреля 2010

При использовании стандартного HTML-управления вводом, нет никакого способа. Вы можете использовать элементы управления загрузкой Flash, которые являются более настраиваемыми. SWFUpload является примером.

По моему мнению, во всех случаях вам необходимо выполнить проверку на стороне сервера расширения и содержимого загружаемого файла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...