Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/01/2007, 19:05
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!!

Este tema del que plantearé mi problema actual, es realmente complejo, he encontrado diversas opiniones y yo espero alguien en este foro pueda decirme cual es el camino a seguir para dar solucion.

Tengo un formulario del cual se manda se enviara a una pagina en php una imagen.. la cual tendra en esa pagina cierto proceso necesario para mi, redimensiona la imagen y la crea apartir de una imagen original(imagen enviada)

El problema que aqui veo es que si mando una imagen superior a 2mb. me marca error, esto lo hace supongo por la restriccion del servidor apache.. esa condicion es facil de manipular podria subirlo a un tamaño mayor y no habria problema alguno..

Ahora bien.. si mi aplicacion la implantase en un servidor, como pienso hacerlo, entonces ese servidor probablemente tenga un limite y podria o no ocurrir ese error y eso es lo que quiero validar..

La accion a realizar en palabras humanas: es validar el elemento tipo file antes de ser subido al servidor y no tan solo eso si no tambien validar la extension., debe ser jpg y nada mas.. esta segunda ya la puedo realizar.. hay mucho scripts por ahi y funcionan bien.. mas no he podido hasta ahora validar el peso del componente tipo file, este para mi contiene una ruta y esta hace referencia a una imagen..

he encontrado muchos sitios que dicen que no es posible.. mas tambien encontre paginas donde hablan de propiedades del objeto image..
y se puede ver que existe una propiedad llamada "fileSize":

http://www.toutjavascript.com/refere...ize&parent=179

http://www.javascriptkit.com/jsref/image.shtml

entonces ahora bien.. si esta propiedad existe.. entonces quiere decir que si puedo recuperar el tamaño de una imagen antes de subirla y validarla.. ahora bien como hacerlo..

encontre 2 paginas que hablan de lo mismo y dan su respuesta.

http://www.quirksmode.org/js/filesize.html

http://qhtimes.com/aspexamples/checkfile.asp

el primero mide el tamaño del documento y utiliza la instruccion fileSize para obtener el tamaño del documento y posteriormente el tamaño de la imagen..

y el segundo conjunta el mismo script de la primera pagina y agrega uno mas para checar la extension..

ahora bien.. con todo esto.. es posible adaptar o adecuar estos codigos para que se de solucion a lo que he visto muchos tenemos inquietud de hacer??

Tengo una idea: para solucionar este problema y no consiste en obtener el fileSize de image.. ya que una de las limitantes es que tu navegador lo soporte ya que no todos lo hacen. me parece que solo el IE lo acepta..

Mi idea es la siguiente..

1. cargar el componente file..
2. elegir en mi caso una fotografia.. (JPG)
3. con onChange yo necesito obtener de la imagen que se cargo el alto y el ancho..
4. Ahora bien.. aqui se validaria, a que las dimensiones de la imagen no sean superiores a 1024 por 768.. o 768 por 1024.. Esto es importante.. ya que es una medida standar en monitores.. por lo tanto en imagenes tambien.. si tu analizas un jpg puedes ver que con estas dimensiones no sobrepasas el peso que te permite apache "en el caso de imagenes"..

5.utilizo onChange por que quiero subir 5 fotos al mismo tiempo (deserposible..) ademas una foto se previsualiza al cargar la pagina y se actualiza esa foto cuando cargas la imagen a subir..

6. y bueno asegurarse que no se envien las imagenes a menos que todas cumplan con esta condicion.

He estado trabajando en ello y mi codigo es el siguiente:
necesito ayuda..

<?php
'<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Img Upload w/Preview</title>';
?>
<script language="javascript">
function refreshImg(){
document.form1.picture.src = 'file:///'+ document.form1.imageField.value;
var tipo = document.form1.imageField.name
alert(tipo)
var numero = document.images.length
alert(numero)
var tamano = document.images[0].src
alert (tamano)
//es aqui donde quiero obtener el alto y el ancho
}
</script>
<?php
echo '</head>';
echo '<body>';
echo '<form name="form1" id="form1" action="uploaded2.php" method="post" enctype="multipart/form-data" >';
echo '<img src="foto2.jpg" alt="vista previa" name="picture" width="200" height="140" id="picture" />';
echo '<br><br>';
echo '<input name="imageField" type="file" onChange="refreshImg(imageField);">';
echo '<br><br>';
echo '<input type="submit" name="Submit" value="Enviar">';
echo '</form>';
echo '</body>';
echo '</html>';
?>



en este foro encontre este codigo pero no se realmente que valores enviar como parametros..

http://www.forosdelweb.com/showthrea...gen+javascript


Agradezco cualquier colaboracion..