Кросс-браузерная проверка правильности ввода файлов в asp.net 2.0 - PullRequest
2 голосов
/ 10 мая 2011

тип входного файла или значение загрузки файла html control / asp.net, похоже, изменяется в зависимости от браузера.

<input type="file" id="fileUpload" name="fileUpload" />

Chrome: fileUpload.value дает c: \ fakePath \ filename

Firefox: fileUpload.value дает filename.ext

т: fileUpload.value дает полный путь + имя файла

я использовал валидатор регулярного выражения с проверочным выражением, как показано ниже

^[a-za-zA-Z0-9_\.]{3,28}\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$

осуществляет процесс ниже:

  1. Имя файла должно быть от 3 до 28 символов

2. Расширение должно соответствовать только группе.

Так как значение элемента управления fileUpload отличается в разных браузерах, как мне проверить его сейчас ??

Ответы [ 2 ]

0 голосов
/ 10 мая 2011

@ Fraz Sundal не смог прокомментировать код, поэтому в новом посте @Fraz до сих пор не дано понять, почему он терпит неудачу, это фрагмент кода <asp:RegularExpressionValidator id="rgvFile" runat="server" font-bold="true" errormessage="Only pdf,doc,zip,jpeg,png,gif files allowed" cssclass="rgvfile" enableclientscript="true" display="Dynamic" controltovalidate="fileUpload" validationexpression="^[a-za-zA-Z0-9_\.]{3,28}\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$" text="Only pdf, doc, zip, jpeg, png, gif files allowed" tooltip="Only certain files allowed and filename cannot contain space.Please check and retry"></asp:RegularExpressionValidator>

на стороне клиента, выражение проверки становится ^[a-za-zA-Z0-9_\.]{3,28}\\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$может быть из-за этого

0 голосов
/ 10 мая 2011

Если вы используете только стандартный RegularExpressionValidator, то он будет работать сам кросс-браузер. Поскольку RegularExpressionValidator работает и на стороне клиента, когда вы выбираете файл, он автоматически отображает сообщение ErrorMessage, если файл недействителен.

Пример кода

<asp:FileUpload ID="fup" runat="server" />        
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" 
ControlToValidate="fup" ErrorMessage="Invalid File" 
ValidationExpression="^[a-za-zA-Z0-9_\.]{3,28}\.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$"></asp:RegularExpressionValidator>
...