Tengo una página web con el siguiente campo del tipo FILE:
<INPUT TYPE="FILE" SIZE="40" NAME="FILE1" ID="FILE1" onFocus="cambia(this.value);" onChange="cambia(this.value);">
La función cambia(), sustituye una imagen que hay en la página por otra elegida a través de dicho campo. El tamaño de la imagen tiene que ser de 460x280 pixels.
Quiero comprobar desde la función si el tamaño de la imagen es correcto, y si no lo es, que me redirija a otra página que informe sobre el error.
Esta es la función:
function cambia(foto){
if (document.forms[0].elements['FILE1'].value != ""){
foto2 = new Image();
foto2.src = 'file:///' + foto;
document.foto.src='file:///' + foto;
if (foto2.width != 460 || foto2.height != 280){
document.location ='error.asp?op=tamf';
} }
}
La mayoría de las veces funciona bien, pero en ocasiones me redirige a la otra página sin tener que hacerlo.
He hecho muchas pruebas y lo que falla es la anchura de la imagen, que a veces la toma como 0 y no sé por qué (incluso con la misma imagen unas veces lo toma bien y otras no).
He supuesto que a lo mejor no le da tiempo de crear el objeto "foto2" y comprobar las medidas, pero no veo sentido a que si falla, siempre falle la anchura y nunca la altura.
Espero sus respuestas, gracias adelantadas