Foros del Web » Programando para Internet » PHP »

expresion regular para validar imagenes

Estas en el tema de expresion regular para validar imagenes en el foro de PHP en Foros del Web. Hola. Estoy tratando de programar una expresión regular que me valide que el archivo subido es una imágen pero no soy capaz. alguna ayuda?...
  #1 (permalink)  
Antiguo 19/10/2008, 04:01
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
expresion regular para validar imagenes

Hola. Estoy tratando de programar una expresión regular que me valide que el archivo subido es una imágen pero no soy capaz. alguna ayuda?
  #2 (permalink)  
Antiguo 19/10/2008, 04:09
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 1 mes
Puntos: 52
Respuesta: expresion regular para validar imagenes

Con una expresion regular??

y no te sirve algo asi:

Código PHP:
$info $_FILES['file']['type'];

if(
$info == "image/gif" || $info == "image/pjpeg" || $info == "image/png"){

code


Última edición por jaronu; 19/10/2008 a las 04:22
  #3 (permalink)  
Antiguo 19/10/2008, 04:21
Avatar de Tokkara  
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 10 meses
Puntos: 5
Respuesta: expresion regular para validar imagenes

puedes usar la siguiente expresion regular

Código PHP:

$formatos 
= array("jpg""gif""png");

$regex_formato "#^.+\.(".implode('|'$formatos).")$#";

if(
preg_match($regex_formato$_FILE["archivo"]["name"])
  echo 
"tiene nombre de imagen";
else
  echo 
" no tiene nombre de imagen"
Esto te valida que el nombre de la imagen acabe en .jpg, .png, .gif. Si quieres mas formatos solo se lo tienes que añadir al array. Pero te repito que esto solo te valida el nombre de la imagen. Siempre te pueden colar con codigo malintencionado usando el nombre de una imagen. Para confirmar tienes comprobar tambien el tipo de la imagen.

Código PHP:
$_FILE["archivo"]["type"]; //tipo del archivo 
Esto te devolvera el tipo de archivo. En caso de una imagen devolvera image/xxx. Ej: image/gif, image/jpg...

Usalo asi:
[PHP]
Código PHP:

$formatos 
= array("jpg""gif""png");

$regex_formato "#.+\.(".implode('|'$formatos).")$#";

if(
preg_match($regex_formato$_FILE["archivo"]["name"] && preg_match("#^image/[a-z0-9]+$#"$_FILE["archivo"]["type"]))
  echo 
"Es una imagen";
else
  echo 
" No es una imagen."
Tambien puedes usar esta funcion para saber que es una imagen. getimagesize
__________________
Revolucionario controlador de plantillas para php
www.simphple.com

Última edición por Tokkara; 19/10/2008 a las 04:49
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:21.