2009-05-01 4 views
5

Ich habe einen Fileupload mit einem RegularExpressionValidator mit folgendem Validation Ausdruck:Datei hochladen mit RegularExpressionValidator nicht mit Firefox nur IE arbeitet

^(([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)$ 

So kann ich sicherstellen, dass der Benutzer nur Bilder hochladen. Aber aus irgendeinem Grund funktioniert es nicht, wenn ich Firefox verwende. Warum ist das und wie kann ich das Problem umgehen?

+0

Ich würde die hochgeladene Dateinamen überprüfen, um zu sehen, ob es einen Unterschied zwischen dem, was IE vs Firefox als Dateinamen POST'ing. –

+0

Ich habe überprüft. Kein Unterschied im Pfadnamen. Dennoch ist es eine Frage, warum es in Firefox nicht funktioniert. Die ausgewählte Antwort schlägt einen neuen Regex-Ausdruck vor und erläutert, was mit Firefox nicht stimmt. – myforums

Antwort

1

ich die Lösung gefunden .....

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

Link to the answer

Genießen Sie !!!

+0

Das ist eine völlig andere Regex als die Regex Ihrer Frage validierte. Sie können genau dasselbe mit einer viel besser lesbaren Regex erreichen, wie es die von DaDa gepostet hat. –

14

Versuchen Sie folgendes:

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

Eine Erweiterung DaDa-Lösung, die für die Groß- und Klein bietet:

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

Es funktioniert nicht mit Firefox Version 3.x arbeiten, weil es JavaScript nicht erlaubt zu bekommen vollständiger Pfadname aus dem Dateieingabefeld und dieser bestimmte reguläre Ausdruck erwartet den vollständigen Pfadnamen.

0

Ich habe eine Lösung für dieses Problem bekam:

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)"); 
} 
Verwandte Themen