Pour une fonction de drag'n'drop de fichier(s) avec affichage de la progression, j'utilise cette partie de code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
for (i=0; i<fichiers.length; i++)
{
	var fichier = fichiers[i];
	//(...)
 
	//initialisation requete AJAX
	var xhr = new XMLHttpRequest();
 
	//ecouteur requete AJAX
	xhr.upload.addEventListener('progress', function(event){progressUpload(event, fichier);}, false);
	xhr.addEventListener('load', function(event){finishUpload(event, fichier);}, false);
	xhr.addEventListener('error', function(event){errorUpload(event, fichier);}, false);
	xhr.addEventListener('abort', function(event){abortUpload(event, fichier);}, false);
 
	//requete AJAX
	xhr.open('POST', parametres['urlUpload'], true);
	xhr.send(fichierFormData);
	//fichier = undefined;//pour test
}
Or, problème, pas moyen de passer 'fichier' à l'addEventListener de l'objet xhr tout en gardant l'event du progress.
Ma fonction progressUpload ne me passe qu'uniquement le dernier fichier du groupe de fichier.
Elle me retourne un undefined si je purge la variable à la fin de ma boucle avec fichier = undefined;

Voila plusieurs... jours que je me casse les dents sur cette fonction, merci