2010-08-30 3 views
0

J'utilise le YUI 2 Uploader pour télécharger des fichiers. Mes utilisateurs téléchargeront plus d'un fichier, donc je veux utiliser la 'file file file' de YUI Uploader. Tout cela fonctionne avec succès. Je désactive l'uploader lorsque les fichiers sont téléchargés, donc les gens ne peuvent pas ajouter de nouveaux fichiers à la file une fois qu'ils commencent à télécharger les fichiers.YUI Uploader - Comment savoir quand tous les fichiers ont été téléchargés?

Je veux faire quelque chose (en JavaScript) lorsque tous les fichiers ont été téléchargés. Le téléchargeur YUI a des signaux indiquant quand certains fichiers sont téléchargés, mais pas quand tous les fichiers de la file d'attente ont été téléchargés. Est-il possible de détecter quand tous les fichiers ont été téléchargés?

Répondre

1

Gardez un objet (ou un tableau) des fichiers & dans le gestionnaire uploadComplete supprimer le fichier selon vient de terminer. S'il n'y en a plus, appelez votre fonction de finalisation du téléchargement.

Exemple de mise en œuvre ici, http://tivac.com/upload/upload.js Il a quelques bugs mais résout ce problème particulier.

0

Créez un eventhandler pour l'événement uploadcomplete. Jetez un oeil à la documentation Uploader Yui: http://developer.yahoo.com/yui/docs/YAHOO.widget.Uploader.html

http://developer.yahoo.com/yui/examples/uploader/uploader-advanced-queue.html

function onUploadComplete(event) { 
     rowNum = fileIdHash[event["id"]]; 
     prog = Math.round(100*(event["bytesLoaded"]/event["bytesTotal"])); 
     progbar = "<div style='height:5px;width:100px;background-color:#CCC;'><div style='height:5px;background-color:#F00;width:100px;'></div></div>"; 
     singleSelectDataTable.updateRow(rowNum, {name: dataArr[rowNum]["name"], size: dataArr[rowNum]["size"], progress: progbar}); 
    } 
+0

Cela est appelé une fois par fichier lorsque ce fichier est téléchargé. S'il y a 3 éléments dans la file d'attente, cette méthode est appelée quand la première est terminée. Je veux quelque chose qui ne soit appelé que lorsque tous les trois ont été exploités. – Rory

Questions connexes