Ver Mensaje Individual
  #1 (permalink)  
Antiguo 30/10/2008, 00:48
franco190453
 
Fecha de Ingreso: abril-2006
Mensajes: 1.128
Antigüedad: 18 años, 1 mes
Puntos: 33
php-ajax-javascript

Hace unos dias me baje un script de un sitio que argumentaba ser un ajax.
Osea que al correr el script subia una imagen o cualquier archivo, se mantenia el mismo index.html y permanecia igual todo lo demas.
Como observe que NO estaba utilizando el httpObject me supuse que NO es Ajax, por definicion.
El script consistia en 5 archivos de imagenes un archivo css un archivo index.php y un archivo php para procesar la subida.
Decidi reducirlo a su mas minima expresion y tratar de descubrir que esta sucediendo.
El resultado final, es decir hasta donde pude llegar teniendo exito en la subida lo expongo aqui:
1.- archivo index.html
<html>
<head>
<title>Subir Archivos FRANCO7777.com</title>
<script language="javascript" type="text/javascript">
function Subida(exito) {
var resultado;
document.getElementById('').innerHTML = resultado + '<label><b>Su Archivo:<br/><input name="MiArchivo" type="file" size="7"/></label><label><input type="submit" value="Subir Archivo"/></label>';
return true;
}
</script>
</head>
<body>
<form action="SubirArchivo.php" method="post" enctype="multipart/form-data" target="Objetivo_Subida" onsubmit="Subida();">
<b>Su Archivo:</b><br/>
<input name="MiArchivo" type="file" size="25"/><br>
<input type="submit" name="submit" value="Subir Archivo"/><br>
<iframe id="Objetivo_Subida" name="Objetivo_Subida" src="#" style="width:0;height:0;border:0px solid #fff;"></iframe>
</form>
</body>
</html>
2.- el archivo php es el siguiente:
<?php
//Aqui podemos poner cualquier ubicacion!!!
$ruta_destino = getcwd().DIRECTORY_SEPARATOR;
$resultado = 0;
$ruta_final = $ruta_destino . basename( $_FILES['MiArchivo']['name']);
if(@move_uploaded_file($_FILES['MiArchivo']['tmp_name'], $ruta_final)) {
$resultado = 1;
}
sleep(1);
?>
<script language="javascript" type="text/javascript">
window.top.window.DetenerSubida(<?php echo $resultado; ?>);
</script>
Ahora bien las cosas que encontre curiosas y con dificultad de explicar son las siguientes:
a.- el document.getElementById('').innerHTML notese el ( ' ' )
b.- el form tiene como target un iframe practicamente inexistente y esta dentro del form.
c.- Recordando que a estas alturas el script funciona normalmente, cuando le quito el target y el iframe, hasta ese momento me responde con una pagina en blanco y NO sube ningun archivo.
SUS COMENTARIOS SON BIENVENIDOS
GRACIAS DE ANTEMANO
Saludos
Franco
P.S. Pareciera ser que hay cosas que NO hacen sentido logico o talvez una explcacion detallada de como ocurre todo este proceso seria muy util. El script asi como esta lo pueden probar y veran que si sube los archivos pero si se elimina el iframe queda aniquilado totalmente. Hay comunicacion asyncronoma o no la hay?.