2012-01-23 2 views
8

Я пишу веб-приложение asp.net, которое включает в себя использование элемента управления FileUpload.Расширение файла фильтра с помощью FileUpload

Прямо сейчас, данный FileUpload управление только ожидает .zip или .gz типы файлов. Если загружен неправильный тип файла, пользователю отображается сообщение об ошибке. Эта функциональность уже реализована.

Что я хочу сделать, это отфильтровать видимые типы файлов, которые пользователь видит, когда нажимает на «просмотр».

Возможно, вы видели диалоговое окно открытия файла, напоминающее следующее.
enter image description here

Я обвел область, представляющую фильтр расширения файлов.

Эта функция настолько распространена, что я ожидал, что она будет встроена в текущий контроллер FileUpload, но после некоторого поиска в Интернете я нашел несколько сообщений, в которых говорится, что это невозможно.

Эти сообщения были сделаны с 2009 года, более 2 лет назад.

Теперь, мой вопрос: поддерживает ли текущая версия Asp.Net 4.0 эту функцию ?, а если нет, знаете ли вы какое-либо простое решение для получения необходимой мне функциональности.

Я хотел бы еще раз отметить, что я могу проверить, выбирает ли пользователь поддерживаемый тип файла. Все, что я ищу - это косметическое изменение, которое отфильтровывает ненужные типы файлов в диалоговом окне открытого файла.

+0

это доступно для настольных приложений, но не для веб-приложений! –

+0

Принятый ответ на так называемый «дубликат» выглядит как проверка, но не фильтрация. –

+1

Я согласен с ответом на дубликат, который не является тем, что вы ищете. – Jon

ответ

5

Я считаю, что это невозможно. Фильтр по типу файла в браузере не является управлением asp.net. Это функциональность браузера.

Этот вопрос уже задавала в stackoverflow.Please нажмите filter the file type with the file upload control

+0

Я видел это, но Microsoft выпустила их .Net Framework 4.0 Через несколько недель после того, как этот вопрос был задан, и после того, как большинство ответов было опубликовано. –

+0

Этот ответ ниже работает для подмножества браузеров: https://stackoverflow.com/a/23589176/12601 – Greg

0

вы можете создать VALIDATE расширение файла из ASP.NET FileUpload управления

Я полагаю, вы могли бы пойти на это решение

Validate File Extension for ASP.NET FileUpload Control

+0

В двух местах моего вопроса я упомянул, что я уже могу выполнить такую ​​проверку. Это не функциональность, о которой я прошу –

0

Это возможно на стороне клиента! Но не забудьте выполнить проверку на стороне сервера.

Это две ссылки показать: http://aspalliance.com/1614_Adding_Filter_Action_to_FileUpload_Control_of_ASPNET_20.all http://www.codeshode.com/2011/07/validate-file-extension-for-aspnet.html

+0

Хороший ответ @Stephan. Слишком много людей забывают, что такая работа выполняется в браузере, а не на сервере. –

5

Для выбора изображения в управлении FileUpload ..

надеюсь, что это поможет вам

asp:RegularExpressionValidator ID="rexp" runat="server" ControlToValidate="fupProduct" 
    ErrorMessage="Only .gif, .jpg, .png, .tiff and .jpeg" 
    ValidationExpression="(.*\.([Gg][Ii][Ff])|.*\.([Jj][Pp][Gg])|.*\.([Bb][Mm][Pp])|.*\.([pP][nN][gG])|.*\.([tT][iI][iI][fF])$)"></asp:RegularExpressionValidator 
12

Вы можете попробовать следующий код.

<asp:FileUpload ID="UploadFile" accept="image/*" multiple="false" runat="server" BorderStyle="None" /> 

Он работает с современными браузерами.

Не забудьте проверить расширения с помощью процедур, описанных в коде.

Смежные вопросы