#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)$
выполняет следующий процесс:
- Имя файла должно содержать от 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)$
может быть из-за этого