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 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);
}
mais comme c'est une liste d'image multiple j'ai m'impression que ça ne marche pas ...
en fait j'aimerai sélectionner l'image
puis cliquer sur un bouton pour lancer l'upload mais pareil ... je galère :(
cs_tom
Messages postés1511Date d'inscriptionsamedi 8 décembre 2001StatutModérateurDernière intervention11 juin 2009 31 oct. 2008 à 11:42
Et il ressemble à quoi le code php qui upload l'image? Je ne comprends pas ce que tu veux recuperer comme info.
"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%"
Ca c'est dejà implementé à la base dans ton script. Si il ne fonctionne pas, c'est que ton fichier php d'upload est pas bon.
"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"
Quel est l'interet de lancer un upload via javascript puisque flash le fait tres bien sans javascript? Cette fonction peut en plus etre implémentée directement dans le listener "oncomplete"
cs_caviar
Messages postés329Date d'inscriptionsamedi 4 janvier 2003StatutMembreDernière intervention29 mars 20152 31 oct. 2008 à 14:28
yes ! merci pour ces éclairages.
En fait je veux lancer l'upload via un bouton HTML qui serait placé dans le formulaire contenant l'uploader.
en fait tu remplis ton questionnaire HTML classique avec ses input et dans ce formulaire se trouve l'anim flash d'upload.
là tu choisi les fichiers à uploader qui s'ajoutent à la liste.
au moment de la validation du form HTML (input submit) ça déclenche une fonction JS qui vérifie les paramètres du form et si c'est bon envoie l'upload des fichiers dans le flash.
Le flash envoie ses fichiers au script php qui lui renvoie une réponse ... par exemple OK si le fichier a bien été uploadé et enregistré dans la bdd
une fois la totalité des fichiers envoyé le flash appelle une autre fonction JS qui valide le formulaire pour envoyer les données...
Voila l'idée générale.
les gestionnaires d'erreurs présents dans l'anim flash ne gèrent les erreurs qu'en cas de problème durant le transfert mais pas de problème après la réception sur le serveur... d'ou l'idée de récup le msg de php.