Ver Mensaje Individual
  #24 (permalink)  
Antiguo 17/09/2006, 11:41
Avatar de Calisco
Calisco
 
Fecha de Ingreso: marzo-2004
Ubicación: Neuquen
Mensajes: 732
Antigüedad: 20 años, 9 meses
Puntos: 4
Luego de indagar e indagar ... tengo mis penosas ciertas conclusiones.

Como Funciona, a quien le pueda servir:

La carga del archivo al servidor lo hace a traves del Iframe Oculto. Aca NO se utiliza ajax en ningun momento. Simplemente la funcion uploadFile dispara el action del formulario mediante
Código PHP:
document.getElementById('formName'+obj.name).submit(); 
. Puro JS.

Dicha action esta definida en la clase php con el metodo showFileUploader($uploaderId) donde el formulario define
action="imageupload.php" target="iframe'.$uploaderId.'". Fijense que el script imageupload.php es cargado en el iFrame Oculto.

Luego, lo unico que hace AJAX es llamar a algun script de respuesta a todo este embrollo a traves de la funcion traceUpload(uploadDir, obj.name). Que en este caso vuelve a llamar al mismo imageupload.php y le pasa por URL algunos datos en la linea
Código PHP:
http.open("GET"'imageupload.php?uploadDir='+uploadDir+'&uploader='+uploader); 
. Podriamos haber puesto cualquier script .php.

Si eliminaramos la linea
Código PHP:
traceUpload(uploadDirobj.name); 
de la funcion fileupload podriamos seguir subiendo archivos sin ningun problema con la diferencia que no tendriamos ninguna respuesta en nuestro browser.

Entonces ..., no podia ver el valor de las variables de $_FILES porque la primera vez se muestran en el iFrame oculto. Y cuando AJAX llama por segunda vez el mismo script, ya los valores de $_FILES se han perdido porque el archivo ya se ha subido.

Recomiendo No utilizar este script como 'seguro'. Tiene varios errores y cosas que se podrian acomodar de una forma mas elegante y eficiente. No lo considero un buen ejemplo desde mi humilde opinion. Para entender el codigo me di cuenta que hay cosas que estan de mas, desordenadas, etc ...

Saludos.
__________________
| Cabeza De Raton |