2009-05-01 7 views
5

Tengo un FileUpload con un RegularExpressionValidator con la siguiente expresión de validación:de carga de archivos con RegularExpressionValidator no funciona con Firefox solamente IE

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

esta manera que asegúrese de que el Usuario sólo subir imágenes. Pero por alguna razón, no funciona cuando uso Firefox. ¿Por qué es eso y cómo puedo solucionar el problema?

+0

Me gustaría comprobar el nombre del archivo subido para ver si hay alguna diferencia entre lo que IE se POST'ing vs Firefox como el nombre del archivo. –

+0

Lo he comprobado. No hay diferencia en el nombre de ruta. Todavía es una pregunta por qué no funciona en Firefox. La respuesta seleccionada propone una nueva expresión de expresiones regulares frente a la explicación de lo que está mal con Firefox. – myforums

Respuesta

1

he encontrado la solución .....

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

Link to the answer

goza !!!

+0

Esa es una expresión regular completamente diferente de lo que valía la expresión regular de su pregunta. usted puede lograr exactamente lo mismo con una expresión regular mucho más legible, como la que publicó DaDa. –

14

Prueba esto:

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

Una mejora a la solución de Dada que atiende a mayúsculas y minúsculas:

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

No funciona con v3.x Firefox, ya que no permite Javascript para llegar nombre de la ruta completa desde el campo de entrada del archivo y esta expresión regular particular espera ver el nombre completo de la ruta.

0

tengo una solución a este problema:

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)"); 
} 
Cuestiones relacionadas