Загрузка файла с помощью RegularExpressionValidator не работает только с Firefox IE

StackOverflow https://stackoverflow.com/questions/810541

Вопрос

У меня есть FileUpload с RegularExpressionValidator со следующим выражением проверки:

^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.gif|.jpg|.JPG|.JPEG|.GIF|.jpeg|.png|.bmp|.3dm|.3dmf|.ai|.drw|.dxf|.esp|.mng|.png|.ps|.psp|.svg|.tiff)$

Таким образом, я удостоверяюсь, что Пользователь загружает только изображения.Но по какой-то причине это не работает, когда я использую Firefox.Почему это так и как я могу обойти проблему?

Это было полезно?

Решение 3

Я нашел решение.....

(.*\.([gG][iI][fF]|[jJ][pP][gG]|[jJ][pP][eE][gG]|[bB][mM][pP])$)

Ссылка на ответ

Наслаждайтесь!!!

Другие советы

Попробуй это:

(.*?)\.(jpg|jpeg|png|gif)$

Усовершенствование решения DaDa, учитывающее регистр символов.:

^(.*?)\.(((j|J)(p|P)(e|E)?(g|G))|((p|P)(n|N)(g|G))|((g|G)(i|I)(f|F)))$

У меня есть решение этой проблемы:

var reg = /([^\s]+(?=.(jpg|gif|png|jpeg)).\2)/gm; 
if (reg.test(uploadcontrol) == false) { 
    alert("Please upload valid image formats(.jpg,.gif,.jpeg and .png)");
}

Это не работает с Firefox v3.x, потому что это не позволяет JavaScript получать полное имя пути из поля ввода файла, и это конкретное регулярное выражение ожидает увидеть полное имя пути.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top