Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/10/2008, 04:21
Avatar de Tokkara
Tokkara
 
Fecha de Ingreso: junio-2008
Mensajes: 131
Antigüedad: 15 años, 11 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