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 :
puis le serveur envoie une réponse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 [WARN] name = idRecto.jpg [WARN] name = idVerso.docx [WARN] name = RIB.pdf
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 :
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.
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 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"}
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:
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...
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 <?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>
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
Partager