Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/07/2011, 11h47   #1
Invité régulier
 
Inscription : juillet 2010
Messages : 26
Détails du profil
Informations forums :
Inscription : juillet 2010
Messages : 26
Points : 8
Points : 8
Par défaut Upload et AddEventListener

Bonjour

J'envoie des fichiers en upload sur un serveur, mais j'ai un problème dans mon application Flex/air :

sur le serveur le fichier est bien recu qu'une seule fois (pour chacun) , voici les logs du serveur :
Code :
1
2
3
[WARN] name = idRecto.jpg
[WARN] name = idVerso.docx
[WARN] name = RIB.pdf
puis le serveur envoie une réponse

et grâce a un listener sur mon fichier uploadé, j'aimerai récupérer la réponse du serveur propre a cet upload

Le problème est que je reçois la réponse de tous les fichiers que j'envoie mélangés. Pas très pratique...

voici les réponses que j'affiche :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
reponse : {"fileName":"idVerso.docx","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"idVerso.docx","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"idRecto.jpg","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"RIB.pdf","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"idVerso.docx","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
 
 
reponse : {"fileName":"idVerso.docx","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"idVerso.docx","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"idRecto.jpg","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"RIB.pdf","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"idVerso.docx","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"RIB.pdf","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"idRecto.jpg","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
 
 
reponse : {"fileName":"idVerso.docx","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"idVerso.docx","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"idRecto.jpg","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"RIB.pdf","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"idVerso.docx","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"RIB.pdf","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
{"fileName":"idRecto.jpg","received":true,"token":"qsdtgqdfh","jsonrpc":"2.0"}
j’aimerai que dans chaque réponse il n'y ait qu'une seule réponse. Je ne pense pas que problème ne vient pas du coté serveur, car le fichier est bien reçu qu'une fois, et la réponse envoyé qu'une fois.



Mon application lit le contenu d'un dossier, met un listener sur chaque fichier contenu dans le dossier et les uploade un par un sur le serveur.
Les listeners permettent de récupérer la réponse du server



voici mon code MXML:
Code :
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
 
<?xml version="1.0" encoding="utf-8"?>
 
<mx:WindowedApplication
pageTitle= "Upload Example"
layout= "absolute"
xmlns:mx= "http://www.adobe.com/2006/mxml">
 
<mx:Script>
<![CDATA[
	import mx.automation.events.EventDetails;
 
 
import mx.collections.ArrayCollection;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
import flash.net.URLRequest;
 
public var objectReceived:Object=new Object();
 
 
[Bindable]
public var dataToSend:String="";
 
public var file:File=new File();
 
public function doCreationComplete():void
{
	var directory:File = File.desktopDirectory.resolvePath("julein_17062011_0002/");
	var list:Array = directory.getDirectoryListing();
	var i:int=0;	
	var listLength: int =list.length;
	var url:URLRequest = new URLRequest("http://localhost:8888/UploadExample");
	//var url:URLRequest = new URLRequest("http://upload-files.appspot.com/UploadExample");
 
	for (i= 0; i < listLength; i++) 
		{
			list[i].addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, responseHandler);
		}
	for (i= 0; i < listLength; i++) 
		{
			list[i].upload(url);
		}
}
private function responseHandler(event:DataEvent):void
{
//get the response String
var reponse:String = String(event.data);
 
trace ("reponse : " + reponse);
trace ("");
}
 
]]>
</mx:Script>
<mx:Button click="doCreationComplete()"/>
</mx:WindowedApplication>
Je pense que le problème vient de l'écoute de l'évènement et au fait que les upload ne sont peut etre pas synchrone, mais je ne vois pas comment régler ca...

J'ai essayé de séparer l'ajout d'écouteur sur chaque fichier, puis leur upload, mais ca ne change rien.

Pouvez vous m'aider ?

merci
jlau89 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/07/2011, 09h51   #2
Modérateur
 
Homme
Consultant Flex / Java
Inscription : novembre 2008
Messages : 452
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Luxembourg

Informations professionnelles :
Activité : Consultant Flex / Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2008
Messages : 452
Points : 637
Points : 637
Salut,

visiblement tu as résolu ton problème. Peux-tu poster la solution pour les personnes qui seraient intéressées stp ?
__________________
N'oubliez pas avant de poster :
et bien sûr la doc Flex
Krazymins est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h21.


 
 
 
 
Partenaires

Hébergement Web