saluté..
je suis en train d'essayer la source suivante
http://www.flashkod.com/codes/UPLOAD-FICHIER-AVEC-FILEREFERENCE-FILEREFERENCELIST_45784.aspx
bon elle marche plutôt pas mal du tout mais j'aimerai l'enrichir de quelques fonctionnalités...
Par exemple est il possible de récupérer le "résultat" de l'exécution du script php à chaque fois qu'une fichier est uploadé...
ça permettrait de gérer les erreurs par exemple si j'upload un fichier de 500 Mo (en local pour le test hein ! ) le fichier php va générer une erreur ... mais le swf n'est pas au courant et affiche un transfert à 100%
ensuite j'aimerai pouvoir déclencher l'upload via une fonction javascript et en lancer une autre une fois que tous les fichiers ont été uploadés...mais ça c'est secondaire pour l'instant
voici le code utilisé dans l'anim au cas où
merci d'avance
var FLRef:FileReferenceList = new FileReferenceList();
// Adresse du script qui va gérer le fichier uploadé
var urlUpload = "http://127.0.0.1/WEB/FileUploader/upload.php";
var arListFiles:Array;
var compteurUpload = 0;
var total_upload = 0;
var total_current_upload = 0;
var upload = 0;
var current_upload = 0;
var nb_file_upload = 0;
// Listener pour gérer les événements
var listener:Object = new Object();
FLRef.addListener(listener);
// Event sur la selection du ou des fichiers
listener.onSelect = function (fileRL:FileReferenceList)
{
compteurUpload = 0;
arListFiles = fileRL.fileList;
// On récupére la taille totale des fichiers à uploader
for (var i:Number = 0; i < fileRL.fileList.length; i++)
total_upload += arListFiles[i].size;
// Maintenant on commence par uploader le premier fichier
if (arListFiles[compteurUpload] != null)
{
arListFiles[compteurUpload].addListener(this);
arListFiles[compteurUpload].upload(urlUpload);
}
}
listener.onComplete = function(file:FileReference):Void
{
total_current_upload += upload;
upload = 0;
if (compteurUpload + 1 < arListFiles.length)
{
compteurUpload++;
// Maintenant on upload le fichier suivant
if (arListFiles[compteurUpload] != null)
{
arListFiles[compteurUpload].addListener(this);
arListFiles[compteurUpload].upload(urlUpload);
}
}
}
// Event sur erreur HTTP
listener.onHTTPError = function(file:FileReference):Void {}
// Event sur l'annulation de l'upload
listener.onCancel = function(file:FileReference):Void {}
// Event sur l'ouverture du fichier
listener.onOpen = function(file:FileReference):Void {}
// Mise à jour des progresse bar
listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void
{
//trace ("onProgress : " + file.name);
if (upload == 0) upload = bytesTotal;
// PB Current
current_upl.setProgress(bytesLoaded, upload);
// PB Total
total_upl.setProgress(total_current_upload + bytesLoaded, total_upload);
}
// Event d'erreur E/S
listener.onIOError = function(file:FileReference):Void {}
// Bouton pour l'upload
btnUpload.onPress = function()
{
FLRef.browse();
}