Hola a todos!
Os explico mi problemilla, tengo una función javascript que realiza un upload de varios archivos a la vez. Cuando se inicia la función realizo un for para recorrer todos los archivos a subir y los subo uno a uno, cuando se ha completado la subida de cada uno de ellos llamo a una función que me va mostrando el progreso de la subida (del tipo 1 de 6 imágenes), os pongo el código:
Código Javascript
:
Ver originalfunction uploadMultipleFiles(up) {
var input = up;
var fd = new FormData();
var files = document.getElementById(input).files.length;
for(i=1; i < files; i++){
fd.append(input, document.getElementById(input).files[i-1]);
var xhr = new XMLHttpRequest();
$('.subiendo').next().after('<div class="uploaderBoxMulti"><div class="uploader"></div><span class="uploadTxt"></span></div>');
$('.uploaderBoxMulti').fadeIn('slow');
$('.subiendo').removeClass('subiendo');
//alert(i);
xhr.addEventListener("load", function(event){uploadComplete(input, "multi", i, files, event)}, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "RUTA AL ALMACENAMIENTO DE LA IMAGEN");
xhr.send(fd);
}
}
Funciona bastante bien, pero el problema es que al llamar a la función uploadComplete() la variable i (el contador del for) me envía simpre el valor máximo (files), sin embargo si pongo un alert para que me muestre la variable i, funciona correctamente (va llamando a la función uploadComplete() con los diferentes valores).
¿Alguna sugerencia?
Gracias y saludos