Ver Mensaje Individual
  #14 (permalink)  
Antiguo 15/05/2007, 21:02
BuckInc
 
Fecha de Ingreso: enero-2004
Ubicación: Cordoba
Mensajes: 72
Antigüedad: 20 años, 3 meses
Puntos: 0
Exclamación validación de imagenes

Validando mi imagen en 1024 por 768 como lo indico en el primer mensaje de este tema.. logré concretar el siguiente script,

me valida la imagen que es jpg y que es no mayor a 1024 por 768, ese para mi es un standar aceptable ya que no hay jpg mayor a 2mb en esas dimensiones.

este script hace lo siguiente:

1. toma una imagen la valida
2. si es mayor a las dimensiones entonces pide otra imagen
3. si es menor o igual, la imagen es cargada sin ningun problema.

lo puedo hacer 1, 2, 3..4..5 .. pero por no se que razones de buenas a primeras me marca o arroja dimensiones de cero tanto en ancho como en alto,
y si por ejemplo la imagen es de 400 por 300 y arroja cero y entonces esa imagen no pasa y el proceso esta mal.. a veces si es una imagen de 3000 por 2500 pues ahi no hay problema es una imagen mayor y ese proceso esta bien.. pero en el caso de menor no esta bien.

Este script valida y ahorra procesamiento al servidor, eso esta bien.. el detalle es que es inestable por el famosos cero que aveces se le ocurre arrojar,
por favor ayudenme a concretarlo para que todos podamos utilizarlo sin problema y no sea de utilidad.

Tras haber validado se puede recuperar en php y redimensionar o renombrar... o guardar en un base de datos. pero de momento lo que hay que corregir o quisiera yo saber es por que sale ese famoso cero.

Descartado al menos eso pienso el detalle de que sea el caché.

[COLOR="Orange"]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
<title>Envio de Imagen</title>
<script language="javascript">
var imgRe = /^.+\.(jpg)$/i;
function previewImage(pathField, previewName)
{ //apertura function
var path = pathField.value;
if (path.search(imgRe) != -1)
{ //apertura primer if
document[previewName].src = 'file://'+path;
{
var img = new Image(); //crea una nueva imagen es un objeto
img.src = 'file://'+path;
//alto = 0;
//ancho= 0;
var valto = img.height
var vancho = img.width
alert(vancho);
alert(valto);
if((vancho == 0 || vancho > 1024)&&(valto == 0 || valto > 768 )){
//if((vancho > 1024)&&(valto > 768 )){
//if((ancho <= 1024)&&(alto <= 768 )){
alert("Por favor, redimensiona la imagen \n a 1024 x 768 px");
//destruir img o eliminar cache
//document.location.href='efoto1.php'
//document.location.href='efoto1.php'
//document.location.href='efoto1.php'
document.location.reload(true)
//alert ("Imagen aceptada..");
//document.foto1.submit();
}else{
alert ("Imagen aceptada..");
document.foto1.submit();
//alert("Por favor, redimensiona la imagen \n a 1024 x 768 px");
//document.location.href='efoto1.php'
}
}
} //cierre 1er if
else
{
alert("Subir solo archivos JPG");

}
}//cierre function
</script>
</head>

<body>
<form name="foto1" enctype="multipart/form-data" method="post" action="upimg/foto1.php">
<div align="center"><img src="clear.jpg" name="replaceMe" width="188" height="136"/><br />
<br />
<input type="file" name="imagen1" size="50" onChange="previewImage(document.foto1.imagen1,'rep laceMe')"/>
<br>
<br />
</div>
</form>
</body>
</html>
[/COLOR]


agradezco cualquier contribución, no soy experto pero creo que puede funcionar y tambien creo que es posible validar sin el servidor, aqui esta la prueba.

gracias!