IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flash Discussion :

Ajouter un champ de variable à envoyer à PHP


Sujet :

Flash

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Par défaut Ajouter un champ de variable à envoyer à PHP
    Bonjour tout le monde.

    J'ai un code FLASH pour télécharger un fichier via PHP. Le code marche nickel. Ce que j'aimerais faire, c'est d'ajouter un champ nom et un champ email au FLASH Quelqu'un peut m'aider? Le traitement au niveau PHP ne pose pas de prob si vous m'aidez à envoyer les deux variables via FLash.

    Voici le code Flash
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    import flash.net.FileReference;
    import flash.net.FileReferenceList;
    var listener:Object = new Object();
     
     
    //============================================================================
    // Définition des constantes du script
    //============================================================================
    fileURL = "upload.php";
    MaxSize =40000000;
    //fileURL = "/cgi-bin/upload.pl";
    //MaxSize = -1;
     
     
    //============================================================================
    // Formatage de la taille des fichiers
    //============================================================================
    function GetSizeFormat(Size:Number){
      if (Size >= 1000) 
        return Math.floor(Size/1000) + " Ko";
      else
        return Size + " octets";
    }
     
    //============================================================================
    // Sélection des fichiers + uploader la liste des fichiers
    //============================================================================
    listener.onSelect = function(fileRefList:FileReferenceList) {
      browse_btn.enabled = false;
      trace("onSelect");
      var list:Array = fileRefList.fileList;
      var file:FileReference;
      for(var i:Number = 0; i < list.length; i++) {
        file = list[i];
        trace("name: " + file.name);
        trace(file.addListener(this));
        if ((file.size <= MaxSize) or (MaxSize < 0)) {
    	  file.upload(fileURL);
    	} else {
    	  var item:Object = new Object();
          item.FileSize = "Annule";
          item.FileName = file.name;
          grid.addItem(item);
        }
      }
    }
     
    //============================================================================
    // Annulation du dialogue d'ouverture de fichiers
    //============================================================================
    listener.onCancel = function():Void {
      trace("onCancel");
      browse_btn.enabled = true;
      stat.text = "";
    }
     
    //============================================================================
    // Evénement d'ouverture d'un fichier
    //============================================================================
    listener.onOpen = function(file:FileReference):Void {
      trace("onOpen: " + file.name);
    }
     
    //============================================================================
    // Affichage de la progression
    //============================================================================
    listener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
      if (bytesTotal == -1) 
        stat.text = "Impossible de determiner le poids du fichier "+file.name;
      else {
        stat.text = "Telechargement de " + file.name + " : " +
    	  Math.floor((bytesLoaded/file.size)*100) + "% of " +
    	  GetSizeFormat(file.size);
        browse_btn.enabled = false;
      }
    }
     
    //============================================================================
    // Téléchargement completé
    //============================================================================
    listener.onComplete = function(file:FileReference):Void {
      trace("onComplete: " + file.name);
      stat.text = "Le transfert est maintenant termine !";
      browse_btn.enabled = true;
      var item:Object = new Object();
      item.FileSize = GetSizeFormat(file.size);
      item.FileName = file.name;
      grid.addItem(item);
    }
     
    //============================================================================
    // Evénement gestion des erreurs
    //============================================================================
    listener.onHTTPError = function(file:FileReference, httpError:Number):Void {
      trace("onHTTPError: " + file.name + " httpError: " + httpError);
      stat.text = "HTTPError = Erreur de transmission du fichier " + file.name;
    }
    listener.onIOError = function(file:FileReference):Void {
      trace("onIOError: " + file.name);
      stat.text = "IOError = Erreur de transmission du fichier " + file.name;
    }
    listener.onSecurityError = function(file:FileReference, errorString:String):Void {
      trace("onSecurityError: " + file.name + " errorString: " + errorString);
      stat.text = "SecurityError = Erreur de transmission du fichier " + file.name + ". " + errorString;
    }
     
    //============================================================================
    // Dialogue de sélection des fichiers
    //============================================================================
    browse_btn.onRelease = function():Void {
      stat.text = "Selection des fichiers a telecharger...";
      browse_btn.enabled = false;
      fileRef.browse(allTypes);
    }
     
    //============================================================================
    // Main
    //============================================================================
    var fileRef:FileReferenceList = new FileReferenceList();
    var allTypes:Array = new Array();
    var imageTypes:Object = new Object();
    imageTypes.description = "Tous fichiers (*.*)";
    imageTypes.extension = "*.*;";
    allTypes.push(imageTypes);
    fileRef.addListener(listener);
    Merci beaucoup

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 94
    Par défaut
    Si tu veux envoyé un fichier de Flash vers PHP tu peux utliser la méthode send, à l'inverse si tu veux récupérer une variable d'un fichier php tu peux utiliser load, si tu veux faire les deux en même temps, et traiter des infos Flash-PHP-MYSQL-PHP-FLASH, tu peux utiliser SendAndLoad.

    pour créer des champs textes, tu peux utiliser les composants formulaires, auquels tu vas attribuer des noms de variables, et c'est ces variables que tu vas envoyer avec la méthode send, vers PHP.

    Une exemple :

    //tu crés un objet LoadVars qui va contenir tes variables a envoyé à PHP
    myvars = new LoadVars();
    //ici tu récupères les variables de tes champs textes crées sur ta scène
    myvars.nom = nom ;
    myvars.prenom = prenom;
    myvars.Email = Email;
    //ici tu envoies tes variables vers ton fichier PHP, qui les traites et te renvoie les éléments traités
    myvars.sendAndLoad('traitement.php', myvars, 'POST');

  3. #3
    Membre éclairé Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Par défaut
    Merci beaucoup Jeremie,

    Mais je suis vraiment débutant et ne comprend pas vraiment malgré ton expliction que je trouve bien faite. Pourras-tu stp, m'eindiquer où je dois insérer ton code dans le code que j'ai mis? Je précise que le code n'est pas de moi mais il marche.

    Merci d'avance

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 94
    Par défaut
    Ce que je ne comprends pas c'est que ton programme te permet de télécharger via HTTP un fichier.
    Et que toi tu veux envoyer des données de FLASH vers PHP.
    Ce sont deux choses différentes.
    Tu n'as pas besoin d'insérer le code au même endroit.

  5. #5
    Membre éclairé Avatar de Alexandrebox
    Profil pro
    Inscrit en
    Août 2006
    Messages
    635
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2006
    Messages : 635
    Par défaut
    Non Jeremie,

    Le programme doit servir de formulaire. Donc deux champ et le bouton parourir. Ce qu'il fait actuellement, c'est d'aller cherche un fichier sur le disque local du client. et d'envoyer tout ça à code PHP que je fais sans problème. C'est ce code qui va se charger d'exécuter le téléchargement. vers le serveur distant.

    Ce que je demande, c'est de mettre ces deux champs sur l'interface actuelle de flash pour permettre de récupérer les deux variables.

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2006
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Juillet 2006
    Messages : 94
    Par défaut
    Citation Envoyé par Alexandrebox
    Non Jeremie,

    Le programme doit servir de formulaire. Donc deux champ et le bouton parourir. Ce qu'il fait actuellement, c'est d'aller cherche un fichier sur le disque local du client. et d'envoyer tout ça à code PHP que je fais sans problème. C'est ce code qui va se charger d'exécuter le téléchargement. vers le serveur distant.

    Ce que je demande, c'est de mettre ces deux champs sur l'interface actuelle de flash pour permettre de récupérer les deux variables.
    A ce moment là tu peux insérer le code que je t'ai écris pour envoyer tes variables vers ton fichier php. Mais d'abord il faut que tu crées les deux composants TextField sur ta scène.
    Mais je persiste à dire que c'est bien deux actions différentes qui n'ont rien à voir, d'un côté tu vas chercher un fichier en local avec l'objet FileReference; et de l'autre tu veux envoyer des variables de Flash vers PHP.

Discussions similaires

  1. [MX] Envoyer une variable avec PHP
    Par flo48 dans le forum Flash
    Réponses: 38
    Dernier message: 22/09/2010, 10h51
  2. Ajouter une variable dans php.ini
    Par Aspic dans le forum Langage
    Réponses: 6
    Dernier message: 14/09/2008, 23h58
  3. Envoyer et récupérer des variables sans php
    Par goueg dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/08/2007, 10h08
  4. Envoyer une variable a php (puis mysql)
    Par gostbuster dans le forum Flash
    Réponses: 2
    Dernier message: 18/11/2006, 00h43
  5. [PHP-JS] ajouter des champ en cliquant sur un bouton?
    Par einsteineuzzz dans le forum Langage
    Réponses: 3
    Dernier message: 29/06/2006, 17h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo