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 :

Upload d'image : problème


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut Upload d'image : problème
    Bonjour,

    voila j'ai un problème. J'ai un programme qui me permet lorsque je clique sur un bouton, de parcourir et d'envoyé une image dans un dossier sur mon serveur. Pour cela, j'ai un programme principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    var monUp:ImageUpload = new ImageUpload("images");
    private function lancerUpload(e:MouseEvent):void
    {
     
    monUp.init();
     
    }
    et une classe ImageUpload.as :
    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
    135
    136
    137
     
    package  {
     
        import flash.events.DataEvent;
    ....
     
        public class ImageUpload extends EventDispatcher {
     
    		static public var START_UP:String = "Upload démarre";
    		static public var END_UP:String = "Fin de l'upload";
    		static public var ANNUL_UP:String = "Cancel de l'utilisateur";
    		static public var SERVEUR_RETOUR:String="Le serveur a répondu";
    		static public var POURCENT:Number;
     
    		private var scriptURL:URLRequest;
    		private var scriptURL2:URLRequest;
            private var file:FileReference;
    		private var dest:String; //dossier de destination
     
    		private var rootInfo:TextField;
     
    		private var _messServeur:String;
     
    		private const imagesFilter:FileFilter = new FileFilter("Images", "*.jpg;*.gif;*.png;*.bmp");
     
    		private var _nameImage:String;
     
    public function ImageUpload(dir:String) {
     
    			dest = dir;
     
    		}
     
    		public function init():void
    		{
     
                scriptURL = new URLRequest();
                scriptURL.url = "*********/upload.php";
              	scriptURL.method = URLRequestMethod.POST;
     
    			var variables:URLVariables = new URLVariables();
                variables.doss = dest;
                scriptURL.data = variables;
    		 	file = new FileReference();
    			file.addEventListener(Event.SELECT, onSelectImage);
    			configureListeners(file);
                file.browse([imagesFilter]);
     
    		}
     
            private function configureListeners(dispatcher:IEventDispatcher):void {
                dispatcher.addEventListener(Event.CANCEL, onAnnul);
               	dispatcher.addEventListener(Event.COMPLETE, onUploadComplet);
                dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
                dispatcher.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
                dispatcher.addEventListener(Event.OPEN, onDebutUpload);
                dispatcher.addEventListener(ProgressEvent.PROGRESS, onProgess);
                dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
                dispatcher.addEventListener(Event.SELECT, onSelectImage);
                dispatcher.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,rapportChargement);
            }
     
    		 private function removeListeners(dispatcher:IEventDispatcher):void {
                dispatcher.removeEventListener(Event.CANCEL, onAnnul);
                dispatcher.removeEventListener(Event.COMPLETE, onUploadComplet);
                dispatcher.removeEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
                dispatcher.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
                dispatcher.removeEventListener(Event.OPEN, onDebutUpload);
                dispatcher.removeEventListener(ProgressEvent.PROGRESS, onProgess);
                dispatcher.removeEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
                dispatcher.removeEventListener(Event.SELECT, onSelectImage);
            }
     
     
            private function onAnnul(event:Event):void {
               	dispatchEvent(new Event(ImageUpload.ANNUL_UP));
            }
     
            private function onUploadComplet(event:Event):void {
     
               	removeListeners(file);
    			dispatchEvent(new Event(ImageUpload.END_UP));
     
            	}
     
            private function rapportChargement(event:DataEvent):void {
             	_messServeur=String(event.data);
    			file.removeEventListener(DataEvent.UPLOAD_COMPLETE_DATA,rapportChargement);
    			dispatchEvent(new Event(ImageUpload.SERVEUR_RETOUR));
            }
     
     
     
    		public function get messServeur():String
    		{
    			return _messServeur;
    		}
     
            private function httpStatusHandler(event:HTTPStatusEvent):void {
     
                trace("httpStatusHandler: " + event);
            }
     
            private function ioErrorHandler(event:IOErrorEvent):void {
     
                trace("ioErrorHandler: " + event);
                Alert.show(String(event));
            }
     
            private function onDebutUpload(event:Event):void {
              dispatchEvent(new Event(ImageUpload.START_UP));
            }
     
            private function onProgess(event:ProgressEvent):void {
                var file:FileReference = FileReference(event.target);
                ImageUpload.POURCENT = (event.bytesLoaded/event.bytesTotal)*100;
    			     }
     
            private function securityErrorHandler(event:SecurityErrorEvent):void {
                trace("securityErrorHandler: " + event);
            }
     
            private function onSelectImage(event:Event):void {
               file = FileReference(event.target);
               _nameImage= file.name;
    		file.upload(scriptURL);
     
            }
     
    		public function get nameImage():String
    		{
    			return _nameImage;
     
    		}	
     
    	}
    }
    Une fois que l'upload finie (COMPLET), je voudrais afficher mon image dans mon application flex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    var monImage : Image = new Image ();
        monImage.source="*********images/" + monUp.nameImage;
        canvas.addChild(monImage);
    Le problème c'est que la je n'arrive pas a afficher mon image une fois que l'upload est finie. Donc je ne sais pas comment et ou mettre le code ce dessus.

    merci de votre aide.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    Il suffit d'indiquer l'URL relative ou absolue de ton fichier sur le serveur.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    C'est bon j'ai trouvé, j'ai ajouté un listener sur ma classe.
    J'ai un autre problème.
    Donc la j'arrive à chargé une image sur mon serveur et à l'afficher dans flex.
    Ce que je voudrais maintenant, c'est de mettre le nom de l'image chargé (monUp.nameImage) dans une liste. Et donc a chaque fois que je charge une image, son nom irait dans la liste sans effacer les noms des autres images deja chargés.

    Donc j'ai ma liste suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <mx:List id="list" x="70" y="426">	
    	</mx:List>
    J'arrive a ajouter le nom de ma première image avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function uploadFini(e:Event){
    
    
    var monImage : Image = new Image ();
    monImage.source="*******/images/" + monUp.nameImage;
    canvas.addChild(monImage);
    img++;
    list.dataProvider=monUp.nameImage;
    addChild(list);
    
    }
    Le problème c'est que si je charge une deuxième image, "j'écris " sur le nom de ma première image et donc le nom disparait au profil de la deuxième. Je souhaiterais que les deux soient présentent dans la liste.

    merci

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    Utilise un ArrayCollection comme dataprovider

Discussions similaires

  1. [Upload] upload d'images problèmes de résolution
    Par gecko642 dans le forum Langage
    Réponses: 2
    Dernier message: 23/04/2007, 17h23
  2. [Upload] Problème upload d'images sur OVH
    Par PeGaZe dans le forum Langage
    Réponses: 2
    Dernier message: 24/12/2006, 20h16
  3. [Upload] GROS problème UPLOAD d'image !
    Par skarapace dans le forum Langage
    Réponses: 3
    Dernier message: 20/11/2006, 11h44
  4. [Upload] Upload d'image problème avec un dédié
    Par gobs dans le forum Langage
    Réponses: 2
    Dernier message: 24/01/2006, 17h57
  5. Réponses: 4
    Dernier message: 09/12/2005, 22h17

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