Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/05/2006, 19:49
albertt_t
 
Fecha de Ingreso: noviembre-2004
Mensajes: 159
Antigüedad: 19 años, 4 meses
Puntos: 0
Exclamación Validar Tamaño max de pixeles (imagen)

Amigos una consulta, es posible validar el tamaño de una imagen? es decir si por ejemplo el maximo permitido es 468 * 60 e ingresan una de 500 * 300 es posible validarlo antes de ingresarlo ?

Yo normalmente valido el tipo y el tamaño y si es mayor la redimensiono. Y la guardo en una Bd, (estoy trabajando con imagenes almacenadas en una bd) ya que es una galeria pequeña..

Pero mi pregunta es puedo validar el tamaño apenas lo estoy cargando? por la web? asi como valido el tipo y el peso?

Adjunto el modelo con el que trabajo (es una parte pero es la parte que hace el redimensionamiento y verifica el tipo y tamaño

Código PHP:


 define
("ALTURA"60);
  
define("ANCHO"468);
  
# Nombre del archivo temporal del thumbnail
  
define("NAMETHUMB""/tmp/thumbtemp"); //Esto en servidores Linux, en Windows podra ser:
// define("NAMETHUMB", "c:/windows/temp/thumbtemp"); y te olvidas de los problemas de permisos
  # Servidor de base de datos
  
define("DBHOST""localhost");
  
# nombre de la base de datos
  
define("DBNAME""mibd");
  
# Usuario de base de datos
  
define("DBUSER""aaaa");
  
# Password de base de datos
  
define("DBPASSWORD""aaaaa");
  
// Mime types permitidos
  
$mimetypes = array("image/jpeg""image/pjpeg""image/gif""image/png");
  
// Variables de la foto
  
$name $_FILES["foto"]["name"];
  
$type $_FILES["foto"]["type"];
  
$tmp_name $_FILES["foto"]["tmp_name"];
  
$size $_FILES["foto"]["size"];
  
//verificamos el tamaño de la Imagen
  
   
if($_FILES["foto"]["size"]>100960)

    { 
    
    echo 
'<br><br><br><center><img src="images/logo.gif"> ' ;
    echo 
'<br><br><br><center><img src="images/error-peso.jpg"> ' 
    echo 
'<br><br><br><br><br><a href="javascript:history.back()"> <img src="images/regresar.jpg" border="0"> </a>' ;  
    exit;
    }
    
  
// Verificamos si el archivo es una imagen válida
  
if(!in_array($type$mimetypes))
   { 
    
    echo 
'<br><br><br><center><img src="images/logo.gif"> ' ;
    echo 
'<br><br><br><center><img src="images/error-tipo.jpg"> ' 
    echo 
'<br><br><br><br><br><a href="javascript:history.back()"> <img src="images/regresar.jpg" border="0"> </a>' ;  
    exit;
    
    }
  
  
// Creando el thumbnail
  
switch($type) {
    case 
$mimetypes[0]:
    case 
$mimetypes[1]:
      
$img imagecreatefromjpeg($tmp_name);
      break;
    case 
$mimetypes[2]:
      
$img imagecreatefromgif($tmp_name);
      break;
    case 
$mimetypes[3]:
      
$img imagecreatefrompng($tmp_name);
      break;
  }
  
$datos getimagesize($tmp_name);
  
//$ratio = ($datos[1]/ALTURA);
 // $ancho = 468;
  //$ancho = round($datos[0]/$ratio);
  
$thumb imagecreatetruecolor(ANCHOALTURA);
  
imagecopyresized($thumb$img0000ANCHOALTURA$datos[0], $datos[1]);
  switch(
$type) {
    case 
$mimetypes[0]:
    case 
$mimetypes[1]:
      
imagejpeg($thumbNAMETHUMB);
      break;
    case 
$mimetypes[2]:
      
imagegif($thumbNAMETHUMB);
      break;
    case 
$mimetypes[3]:
      
imagepng($thumbNAMETHUMB);
      break;
  }
  
// Extrae los contenidos de las fotos
  # contenido de la foto original
  
$fp fopen($tmp_name"rb");
  
$tfoto fread($fpfilesize($tmp_name));
  
$tfoto addslashes($tfoto);
  
fclose($fp);
  
# contenido del thumbnail
  
$fp fopen(NAMETHUMB"rb");
  
$tthumb fread($fpfilesize(NAMETHUMB));
  
$tthumb addslashes($tthumb);
  
fclose($fp);
  
// Borra archivos temporales si es que existen
  
@unlink($tmp_name);
  @
unlink(NAMETHUMB);
  
// Guardamos todo en la base de datos
  
  #nombre de la foto