2013-05-16 6 views
0

Я пытаюсь добавить проверку типов файлов в форму загрузки файла:RegularExpressionValidator сообщение об ошибке

<asp:FileUpload ID="FileUpload1" runat="server" /> 
<asp:RegularExpressionValidator id="FileUpLoadValidator" runat="server" ErrorMessage="Upload .doc, .pdf or .xls files only." ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))(.xls|.XLS|.pdf|.PDF|.doc|.DOC)$" ControlToValidate="FileUpload1"> </asp:RegularExpressionValidator> 

Перед добавлением RegularExpressionValidator любого типа файла может быть загружены.

После его добавления все файлы могут быть загружены.

Может ли кто-нибудь сказать мне, что мне не хватает?

+0

Проверьте с помощью синтаксиса «multiple» в элементе управления файловой загрузкой. – iamCR

+0

С или без 'multiple' (что позволяет загружать несколько файлов), я получаю тот же результат. Я удалю его для ясности. – Robert

+0

@Robert у меня пробовала моя логика дорого .. – Rahul

ответ

1

Пробуйте использовать эту логику

^.*\.(jpg|JPG|gif|GIF|doc|DOC|pdf|PDF)$ 

Вы используете dot и dot is a special character. Существует tool для проверки вашего Regular Expression. Вы можете добавить другой файл Extension.

Попробуйте также

^([a-zA-Z].*|[1-9].*)\.(((p|P)(d|D)(f|F))|((d|D)(o|O)(c|C)))$ 

код Behind

Для этого вам нужно иметь Button и это OnClick событие вы должны проверить extension1 файла первого как

if (FileUpload1.HasFile) 
{ 
      // Get the name of the file to upload. 
      string fileName = Server.HtmlEncode(FileUpload1.FileName); 
      // Get the extension of the uploaded file. 
      string extension = System.IO.Path.GetExtension(fileName); 
      // Allow only files with .doc or .xls or .pdf extensions 
      // to be uploaded. 
      if ((extension == ".pdf") || (extension == ".xls") || (extension == ".doc")) 
      { 
      //upload accordingly 
      } 
      else 
      { 
      // Show message 
      } 
} 

Надеюсь, что он работает

+0

Я пробовал это с файлом '.htm' и, к сожалению, он все еще загружен. – Robert

+0

только .pdf, .doc и .xls. – Robert

+0

PLZ попробуйте это тоже. – Rahul

0

Попробуйте любой из них.

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
        ErrorMessage="Only JPG/jpg file allowed!" 
        ControlToValidate="ctlFileUpload" 
        ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w](.)*))+(\.jpg|\.JPG)$" 
        Width="510px" CssClass="Validator"></asp:RegularExpressionValidator> 

// ----- или

<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
        ErrorMessage="Only JPG/jpg file allowed!" 
        ControlToValidate="ctlFileUpload" 
        ValidationExpression="^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.jpg|.JPG)$" 
        Width="510px" CssClass="Validator"></asp:RegularExpressionValidator> 

// ------- или

<asp:RegularExpressionValidator ID="imgValidator" runat="server" ControlToValidate="imgUpload" 
       ErrorMessage="*JPG/JPEG/GIF files only" ValidationExpression="^.+\.(([jJ][pP][eE]?[gG])|([gG][iI][fF]))$" /> 

или попробовать это, чтобы позволить пользователю загрузить текстовый файл

<asp:RegularExpressionValidator ID="FileUpLoadValidator" runat="server" ErrorMessage="Only text files!" 
       ValidationExpression=".*(\.txt|\.TXT)$" ControlToValidate="FileUpload1" Display="None"> 
+0

Спасибо. Я попробовал следующее, и страница зависает при нажатии на загрузку: '' – Robert

+0

используйте это выражение '^. * \. Xls [xm]? $' – iamCR

+0

Все еще висит на загрузке. – Robert

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