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

Flex Discussion :

Bouton Parcourir Flex


Sujet :

Flex

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 177
    Points : 53
    Points
    53
    Par défaut Bouton Parcourir Flex
    Bonjour,

    Je souhaiterais réaliser un bouton parcourir pour une application qui doit aller chercher un fichier mais je ne sais pas comment le faire. Il me semble qu'en Flex, ce n'est pas possible... Auriez vous une idée la dessus?

    Par avance merci de votre aide

  2. #2
    Membre habitué Avatar de greatalain
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Novembre 2007
    Messages : 124
    Points : 159
    Points
    159
    Par défaut
    utilise les fileReference et la fonction browse sa permet de faire exactement ce que tu veux

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 177
    Points : 53
    Points
    53
    Par défaut
    Merci Greatalain, je vais voir ça de suite...

  4. #4
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    J'ai ceci si ça peut t'intérresser...
    De retour parmis vous après 10 ans!!

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 177
    Points : 53
    Points
    53
    Par défaut
    Merci Sub.

    Bon je reviens parce que je n'arrive toujours pas faire ce que je veux...
    Je vais expliquer plus en détails...
    J'ai une application Flex qui doit juste récupéré le chemin du fichier. Et donc en passant par le FileReference je n'arrive pas a récupérer le chemin du fichier...


  6. #6
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Salut,

    J'ai eu le même soucis. En fait il n'est pas possible de récupérer le chemin d'un fichier sur un poste client car il s'execute dans un contexte sécurisé (sandbox) afin que ton application ne puisse pas modifier le poste de l'utilisateur.

    Bon courage

    ++

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 177
    Points : 53
    Points
    53
    Par défaut
    Donc tu es en train de me dire que je n'ai aucun moyen de le faire...
    Et si je le download dans un buffer? ou dans un fichier temp, c'est possible?
    Il y a pas d'alternative?

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Alors en fait il y a possibilité d'uploader ce fichier via le protocole HTTP sur le serveur (voici la doc) mais dans ce cas c'est le flux de données que tu vas récupérer et pas le chemin. Tu pourras ensuite copier ce flux côté serveur dans un répertoire que tu auras défini. J'espère avoir été claire dis le moi sinon.

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Mars 2003
    Messages
    177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 177
    Points : 53
    Points
    53
    Par défaut
    J'avoue que j'ai pas forcément tout compris mais je vais essayé de faire l'effort de comprendre tout seul pour ne pas te dérangé plus, puisque tu m'aide déjà beaucoup.
    Ce matin j'ai pensé a quelques chose. Si je récupère le file.name puis que je place toujours mon fichier dans le même répertoire. Il me sera alors possible de le traiter puisque je connaitrais le chemin, me trompe je?

  10. #10
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Oui tu peux faire ça si tous tes fichiers sont toujours aux mêmes endroits.
    J'avoue que j'ai pas forcément tout compris mais je vais essayé de faire l'effort de comprendre tout seul pour ne pas te dérangé plus, puisque tu m'aide déjà beaucoup.
    Non tu ne me déranges pas, y'a vraiment aucun soucis.

    ++

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    Un peu de code ?

    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
    127
    128
    129
    130
    131
    132
    133
    134
    package {
        import flash.display.Sprite;
        import flash.events.*;
        import flash.net.FileReference;
        import flash.net.FileReferenceList;
     
        public class FileReferenceListExample extends Sprite {
            public static var LIST_COMPLETE:String = "listComplete";
            public function FileReferenceListExample() {
                initiateFileUpload();
            }
     
            private function initiateFileUpload():void {
                var fileRef:CustomFileReferenceList = new CustomFileReferenceList();
                fileRef.addEventListener(FileReferenceListExample.LIST_COMPLETE, listCompleteHandler);
                fileRef.browse(fileRef.getTypes());
            }
     
            private function listCompleteHandler(event:Event):void {
                trace("listCompleteHandler");
            }
        }
    }
     
    import flash.events.*;
    import flash.net.FileReference;
    import flash.net.FileReferenceList;
    import flash.net.FileFilter;
    import flash.net.URLRequest;
     
    class CustomFileReferenceList extends FileReferenceList {
        private var uploadURL:URLRequest;
        private var pendingFiles:Array;
     
        public function CustomFileReferenceList() {
            uploadURL = new URLRequest();
            uploadURL.url = "http://www.[yourDomain].com/yourUploadHandlerScript.cfm";
            initializeListListeners();
        }
     
        private function initializeListListeners():void {
            addEventListener(Event.SELECT, selectHandler);
            addEventListener(Event.CANCEL, cancelHandler);
        }
     
        public function getTypes():Array {
            var allTypes:Array = new Array();
            allTypes.push(getImageTypeFilter());
            allTypes.push(getTextTypeFilter());
            return allTypes;
        }
     
        private function getImageTypeFilter():FileFilter {
            return new FileFilter("Images (*.jpg, *.jpeg, *.gif, *.png)", "*.jpg;*.jpeg;*.gif;*.png");
        }
     
        private function getTextTypeFilter():FileFilter {
            return new FileFilter("Text Files (*.txt, *.rtf)", "*.txt;*.rtf");
        }
     
        private function doOnComplete():void {
            var event:Event = new Event(FileReferenceListExample.LIST_COMPLETE);
            dispatchEvent(event);
        }
     
        private function addPendingFile(file:FileReference):void {
            trace("addPendingFile: name=" + file.name);
            pendingFiles.push(file);
            file.addEventListener(Event.OPEN, openHandler);
            file.addEventListener(Event.COMPLETE, completeHandler);
            file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
            file.addEventListener(ProgressEvent.PROGRESS, progressHandler);
            file.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
            file.upload(uploadURL);
        }
     
        private function removePendingFile(file:FileReference):void {
            for (var i:uint; i < pendingFiles.length; i++) {
                if (pendingFiles[i].name == file.name) {
                    pendingFiles.splice(i, 1);
                    if (pendingFiles.length == 0) {
                        doOnComplete();
                    }
                    return;
                }
            }
        }
     
        private function selectHandler(event:Event):void {
            trace("selectHandler: " + fileList.length + " files");
            pendingFiles = new Array();
            var file:FileReference;
            for (var i:uint = 0; i < fileList.length; i++) {
                file = FileReference(fileList[i]);
                addPendingFile(file);
            }
        }
     
        private function cancelHandler(event:Event):void {
            var file:FileReference = FileReference(event.target);
            trace("cancelHandler: name=" + file.name);
        }
     
        private function openHandler(event:Event):void {
            var file:FileReference = FileReference(event.target);
            trace("openHandler: name=" + file.name);
        }
     
        private function progressHandler(event:ProgressEvent):void {
            var file:FileReference = FileReference(event.target);
            trace("progressHandler: name=" + file.name + " bytesLoaded=" + event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
        }
     
        private function completeHandler(event:Event):void {
            var file:FileReference = FileReference(event.target);
            trace("completeHandler: name=" + file.name);
            removePendingFile(file);
        }
     
        private function httpErrorHandler(event:Event):void {
            var file:FileReference = FileReference(event.target);
            trace("httpErrorHandler: name=" + file.name);
        }
     
        private function ioErrorHandler(event:Event):void {
            var file:FileReference = FileReference(event.target);
            trace("ioErrorHandler: name=" + file.name);
        }
     
        private function securityErrorHandler(event:Event):void {
            var file:FileReference = FileReference(event.target);
            trace("securityErrorHandler: name=" + file.name + " event=" + event.toString());
        }
    }
    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
    package com.example.programmingas3.fileio {
        import flash.events.*;
        import flash.net.FileReference;
        import flash.net.URLRequest;
     
        import fl.controls.Button;
        import fl.controls.ProgressBar;
     
        public class FileUpload {
            // Hard-code the URL of the remote upload script.
            // private const UPLOAD_URL:String = "http://www.yourdomain.com/upload_script.cfm";
    		private const UPLOAD_URL:String = "http://localhost";
            private var fr:FileReference;
            // Define reference to the upload ProgressBar component.
            private var pb:ProgressBar;
            // Define reference to the "Cancel" button which will immediately stop the upload in progress.
            private var btn:Button;
     
            public function FileUpload() {
            }
     
    		/**
             * Set references to the components, and add listeners for the SELECT,
             * OPEN, PROGRESS, and COMPLETE events.
             */
            public function init(pb:ProgressBar, btn:Button):void {
                // Set up the references to the progress bar and cancel button, which are passed from the calling script.
                this.pb = pb;
                this.btn = btn;
     
                fr = new FileReference();
                fr.addEventListener(Event.SELECT, selectHandler);
                fr.addEventListener(Event.OPEN, openHandler);
                fr.addEventListener(ProgressEvent.PROGRESS, progressHandler);
                fr.addEventListener(Event.COMPLETE, completeHandler);
            }
     
            /**
             * Immediately cancel the upload in progress and disable the cancel button.
             */
            public function cancelUpload(e:MouseEvent):void {
                fr.cancel();
    //            pb.label = "UPLOAD CANCELLED";
                btn.enabled = false;
            }
     
            /**
             * Launch the browse dialog box which allows the user to select a file to upload to the server.
             */
            public function startUpload(e:MouseEvent):void {
                fr.browse();
            }
     
            /**
             * Begin uploading the file specified in the UPLOAD_URL constant.
             */
            private function selectHandler(event:Event):void {
                var request:URLRequest = new URLRequest();
                request.url = UPLOAD_URL;
                fr.upload(request);
            }
     
            /**
             * When the OPEN event has dispatched, change the progress bar's label 
             * and enable the "Cancel" button, which allows the user to abort the 
             * upload operation.
             */
            private function openHandler(event:Event):void {
    //            pb.label = "UPLOADING";
                btn.enabled = true;
            }
     
            /**
             * While the file is uploading, update the progress bar's status and label.
             */
            private function progressHandler(event:ProgressEvent):void {
    //            pb.label = "UPLOADING %3%%";
                pb.setProgress(event.bytesLoaded, event.bytesTotal);
            }
     
            /**
             * Once the upload has completed, change the progress bar's label and 
             * disable the "Cancel" button since the upload is already completed.
             */
            private function completeHandler(event:Event):void {
    //            pb.label = "UPLOADING COMPLETE";
                pb.setProgress(0, 100);
                btn.enabled = false;
            }
        }
    }
    Je bosse dessus ce week-end aussi

  12. #12
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    J'aurais voulu savoir si après de longue recherche, quelqu'un avait trouvé une réponse à cette problématique.

    Serait-il possible également d'avoir un exemple.

    Merci D'avance,

    Griff....

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    Tout est dans le code, ca fonctionne parfaitement sous Flex, il suffit d'utiliser la Classe FileReference pour uploader ou FileReferenceList si tu veux uploader plusieurs fichiers à la fois http://livedocs.adobe.com/flash/9.0_...riptLangRefV3/ Quand tu instancie la classe FileReference (lors d'un clic sur un bouton par exemple), une popup s'ouvre pour spécifier le fichier à envoyer sur le serveur. C'est pas très compliqué t'inquiète tout est sur la doc en français. Bon courage

  14. #14
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    Ma problématique concerne la récupération du chemin de fichier à uploader.

    Je ne vois pas où cela se trouve?

    Merci d'avance.

  15. #15
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    268
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 268
    Points : 128
    Points
    128
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $file_temp = $_FILES['file']['tmp_name']; // le fichier tmp que tu récupère
    sorry, pas défaut c'est file le nom de l'"input"

  16. #16
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 3
    Points : 4
    Points
    4
    Par défaut
    en fait j'ai oublié de préciser une chose...

    Je n'utilise pas de serveur WEB pas de PHP.

    C'est une application locale que je dois produire mais je ne peux pas utiliser AIR car je dois rester en SWF.

    Le but de mon application est donc de proposer à l'utilisateur de choisir un fichier et ensuite d'afficher le chemin de ce fichier dans mon Flex.

    J'ai absolument besoin du nom du chemin de mon fichier, mon projet en dépend... Je n'ai pas valider ça en début du projet et je risque de me faire shooter si ce n'est pas le cas...

    Merci d'avance pour votre aide.

Discussions similaires

  1. [C#] Créer un bouton parcourir
    Par trotters213 dans le forum Windows Forms
    Réponses: 9
    Dernier message: 24/01/2012, 18h22
  2. Réponses: 1
    Dernier message: 31/10/2005, 09h33
  3. modifier le bouton parcourir en image d'une entré texte
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 04/09/2005, 22h49
  4. Mettre une image a la place du bouton parcourir
    Par Death83 dans le forum Langage
    Réponses: 3
    Dernier message: 04/09/2005, 20h16
  5. Réponses: 4
    Dernier message: 20/04/2005, 12h00

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