begin process at 2012 05 27 23:03:05
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Divers

 > 

Débutant(e)

 > 

Upload en flash. pb de recup du resultat


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Upload en flash. pb de recup du resultat

jeudi 30 octobre 2008 à 16:58:53 | Upload en flash. pb de recup du resultat

caviar

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();
}


jeudi 30 octobre 2008 à 18:13:31 | Re : Upload en flash. pb de recup du resultat

tom

Administrateur CodeS-SourceS
salut,

oui, en effet, tu as çà :

myListener.onUploadCompleteData = function(myFileReference, mon_retour) {
flash.external.ExternalInterface.call("module._getMyLastFile", mon_retour);
};
Ca récupère le echo 'mon nouveau nom de fichier'; dans ma page d'upload PHP par exemple 
vendredi 31 octobre 2008 à 11:24:58 | Re : Upload en flash. pb de recup du resultat

caviar

merci pour la réponse mais j'arrive pas à faire fonctionner ça dans ce script ...
j'ai ajouté ça

listener.onUploadCompleteData = function(file:FileReference, mon_retour) {
    flash.external.ExternalInterface.call("module._getMyLastFile", mon_retour);
    trace('php'+mon_retour);
};


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 :(

@+
vendredi 31 octobre 2008 à 11:42:15 | Re : Upload en flash. pb de recup du resultat

tom

Administrateur CodeS-SourceS
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"
vendredi 31 octobre 2008 à 11:49:26 | Re : Upload en flash. pb de recup du resultat

tom

Administrateur CodeS-SourceS
les erreurs sont gérées avec ses fonctions là :

// 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 {}

Si elles sont vides, evidement, il ne dira rien en cas d'erreur...

Et pour ton onprogress, y a pas de verification de poids :

listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void
{
if(bytesTotal == -1){
 trace("on n'arrive pas à determiner le poids!");
}else{

    //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);
}
}
vendredi 31 octobre 2008 à 14:28:47 | Re : Upload en flash. pb de recup du resultat

caviar

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.

le php d'upload est tout con pour le moment

<?php
    //print_r($_FILES);
    if (isset($_FILES["Filedata"])) {
        move_uploaded_file($_FILES["Filedata"]["tmp_name"], $_FILES["Filedata"]['name']);
        echo 'okay';
        }     else {
          echo "KO";
        }
?>

thx
@+
vendredi 31 octobre 2008 à 14:31:03 | Re : Upload en flash. pb de recup du resultat

caviar

ps : le script en lui même fonctionne pour le moment ...c'est juste que j'ai du me tromper dans ça

listener.onUploadCompleteData = function(file:FileReference, mon_retour) {
    flash.external.ExternalInterface.call("module._getMyLastFile", mon_retour);
    trace('php'+mon_retour);
};


car mon trace n'est jamais exécuté


Cette discussion est classée dans : upload, var, total, compteurupload, arlistfiles


Répondre à ce message

Sujets en rapport avec ce message

simple selection dans un browse [ par davedavej ] Bonjour, J'utilise cet actionscript 2 pour mon upload seulement voila j'ai un probleme 1) il utilise plusieurs selections alors que moi je voudrais a Prelaoder pour SWF externe [ par Nextra ] Bonjour,Voila mon souci : J'ai 5 fichier SWF séparés (dessin.swf, animation.swf, 3d.swf, main.swf et sclupture.swf) qui sont assez lourd (entre 5 et 7 Atteindre la fin d'une anim pendant un loader [ par patrickart ] Bonjour je cherche je cherche mais je trouve pas, j'ai une anim placé dans un clip "animload" et un loading placé sur la scène myInterval = setInte Preloader invisible sous internet explorer [ par spip931 ] Bonjour à tous, J'ai une animation que je compte mettre en ligne en intro à un site. J'ai mis ce préloader en première image : [code=as]stop(); functi Load var et upload [ par kouzamax ] Bonjour à tous! Voilà je suis vraiment une clètte en AS. Mon problème est le suivant :J'ai un fichier php qui créé un fichier texte dans lequel il met Preload pour gros swf avec séquences [ par hyksos ] Bonjour à tous et à toutes. Alors Voilà j'essai depuis un bon moment de faire un preload pour mon fla qui pèse ses 3Mo en 5 séquences. Malheureusement PB: FileReference [ par SoyYo ] Bonjour a tousJe viens de me mettre a Flash 8 (version d'essai pour l'instant) histoire de voir les nouveaux composants et surtout le FileReference qu transfert d'infos entre 2 champs [ par edophie ] BonjourJ'ai une animation qui prend les infos sur un fichier xml.Je construis un tableau avec le XML connector et le DataSet.ce que j'aimerai c'est qu duplicateMovieClip, RadioButton selon le fichier XML [ par cefar ] Bonjour,Je tente de développer un QCM avec chargement d'un fichier XML.Le nombre de réponse par question n'est pas fixe.Je fais une boucle pour placer filereference > upload [ par kingcobra ] Hello, Quelques petites questions à propos du fileRef.- Y'a t il un moyen d'empecher qu'un script flash externe (j'entend pas sur le serveur) accede à


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales