Проверка ввода файла через браузер в asp.net 2.0

#javascript #asp.net #validation #file-upload

#javascript #asp.net #проверка #загрузка файла

Вопрос:

введите тип file или элемент управления file upload html/ asp.net управляющее значение, похоже, меняется в зависимости от браузеров.

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

Chrome:
FileUpload.value выдает c:fakePathfilename

Firefox: FileUpload.value выдает filename.ext

ie: FileUpload.value указывает полный путь имя файла

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

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

выполняет следующий процесс:

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

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

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

Ответ №1:

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

Пример кода

 <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>
  

Комментарии:

1. Так ли это !!. Не могли бы вы создать простую форму для проверки приведенного выше регулярного выражения и просмотра в Chrome, Safari, Firefox. Вопрос об основной причине был поднят, потому что это не сработало

2. Этот код работает в IE, Firefox и Chrome. Я думаю, этого более чем достаточно для проверки кроссбраузерности в трех основных браузерах

3. я вернусь после еще нескольких тестов

4. Пожалуйста, попробуйте следующее, это не работает <asp:FileUpload id="fup" runat="server" /> <asp:RegularExpressionValidator id="RegularExpressionValidator1" runat="server" controltovalidate="fup" enableclientscript="true" errormessage="Invalid File" text="invalid file" validationexpression="^[a-za-zA-Z0-9_.]{3,28}.(pdf|txt|doc|docx|png|gif|jpeg|jpg|zip|rar)$"></asp:RegularExpressionValidator> событие, хотя я ввожу действительный файл sprite.png , он говорит, что недопустимый файл

Ответ №2:

@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)$ может быть из-за этого