Ver Mensaje Individual
  #1 (permalink)  
Antiguo 17/08/2010, 06:35
fsr
 
Fecha de Ingreso: abril-2005
Mensajes: 4
Antigüedad: 19 años
Puntos: 0
Input file y ajax

Hola a todos:
A ver si alguien me puede iluminar... He creado un form que dirige el valor de un input file a la página check.php. En ckeck se comprueba que la extensión sea la adecuada y devuelve un mensaje. Con un sólo campo funciona perfecto pero con dos campos se vuelve loco.
Así que, si alguien puede dar con la solución le estaría agradecido.
Saludos


///////////////////////////////////////
// PAGINA FORM
///////////////////////////////////////
<!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=utf-8" />
<title>Prueba foto</title>
<script language="javascript" type="text/javascript" src="ajax.js"></script>
<style type="text/css">
#respuesta1{font-family:Verdana, Arial, Helvetica, sans-serif; font-size:9px; color:#7D7D7D; width:320px; align:left}

</style>


</head>

<body>
<form id="form1" name="form1" method="post" action="">
<input type="file" name="foto1" id="foto1" onblur="from(document.getElementById('foto1').valu e,'respuesta1','check.php','1')"/><br/>
<div id="respuesta1"></div>
<br />
<input type="file" name="foto2" name="foto2" onblur="from(document.getElementById('foto2').valu e,'respuesta2','check.php','2')"/><br/>
<div id="respuesta2"></div>
</form>
</body>
</html>

///////////////////////////////////////
//PAGINA CHECK.PHP
///////////////////////////////////////
<?php
$foto1 = $_GET['id'];
$pos = $_GET['pos'];
$foto_Ex = strtolower($foto1);
$foto_Ex = explode('.', $foto_Ex);
//echo $s_foto[1];
sleep(1);
if ($foto_Ex =="jpg" || $foto_Ex =="gif" || $foto_Ex =="png"){
echo '<img src="img/ok.gif" /> La imagen <strong>' .$_GET['id'] .' es de tipo correcto';
$_SESSION['pos'] = $pos;
}
else {
echo '<img src="img/error.png" /><strong>' .$_GET['id'] . "</strong> El tipo de imagen NO ES EL ADECUADO. Debe ser jpg, gif o png ".$_GET['pos'];
}
?>


///////////////////////////////////////
// PAGINA AJAX.JS
///////////////////////////////////////
function obtiene_http_request()
{
var req = false;
try
{
req = new XMLHttpRequest(); /* p.e. Firefox */
}
catch(err1)
{
try
{
req = new ActiveXObject("Msxml2.XMLHTTP");
/* algunas versiones IE */
}
catch(err2)
{
try
{
req = new ActiveXObject("Microsoft.XMLHTTP");
/* algunas versiones IE */
}
catch(err3)
{
req = false;
}
}
}
return req;
}
var miPeticion = obtiene_http_request();
//************************************************** *************************************
function from(id,ide,url,pos){
var mi_aleatorio=parseInt(Math.random()*99999999);//para que no guarde la página en el caché...
var vinculo=url+"?id="+id+"&pos="+pos+"&rand="+mi_alea torio;
//alert(vinculo);
miPeticion.open("GET",vinculo,true);//ponemos true para que la petición sea asincrónica
miPeticion.onreadystatechange=miPeticion.onreadyst atechange=function(){
if (miPeticion.readyState==4)
{
//alert(miPeticion.readyState);
if (miPeticion.status==200)
{
//alert(miPeticion.status);
//var http=miPeticion.responseXML;
var http=miPeticion.responseText;
document.getElementById(ide).innerHTML= http;

}
}else
{
document.getElementById(ide).innerHTML="<img src='img/loader.gif' title='cargando...' />";

}
}
miPeticion.send(null);

}