Jutilise un Client AIR qui se connecte a un serveur Tomcat via blazeDs.
Je veut récupérer un fichier qui se situe sur le serveur.
Quel est le meilleur moyen d'y parvenir.
Merci d'avance.
Jutilise un Client AIR qui se connecte a un serveur Tomcat via blazeDs.
Je veut récupérer un fichier qui se situe sur le serveur.
Quel est le meilleur moyen d'y parvenir.
Merci d'avance.
J'ai réussi a dowload le fichier via une url web.
Pour ceux que le code intéresse:
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 package { import flash.filesystem.File; import flash.filesystem.FileMode; import flash.filesystem.FileStream; import flash.net.URLRequest; import flash.net.URLStream; import flash.utils.ByteArray; public class Dl { // Class to download files from the internet // Function called every time data arrives // called with an argument of how much has been downloaded public var onProgress :Function = function(t:uint):void{}; public var onComplete :Function = function():void{}; public var remotePath :String = ""; public var localFile :File = null; private var stream :URLStream; private var fileAccess :FileStream; public function Dl( remotePath :String = "" , localFile :File = null ) { this.remotePath = remotePath; this.localFile = localFile; } public function load() :void { if( !stream || !stream.connected ) { stream = new URLStream(); fileAccess = new FileStream(); var requester :URLRequest = new URLRequest( remotePath ); var currentPosition :uint = 0; var downloadCompleteFlag :Boolean = false; // Function to call oncomplete, once the download finishes and // all data has been written to disc fileAccess.addEventListener( "outputProgress", function ( result ) :void { if( result.bytesPending == 0 && downloadCompleteFlag ) { stream.close(); fileAccess.close(); onComplete(); } }); fileAccess.openAsync( localFile, FileMode.WRITE ); stream.addEventListener( "progress" , function () :void { var bytes :ByteArray = new ByteArray(); var thisStart :uint = currentPosition; currentPosition += stream.bytesAvailable; // ^^ Makes sure that asyncronicity does not break anything stream.readBytes( bytes, thisStart ); fileAccess.writeBytes( bytes, thisStart ); onProgress( currentPosition ); }); stream.addEventListener( "complete", function () :void { downloadCompleteFlag = true; }); stream.load( requester ); } else { // Do something unspeakable } } } }
Partager