隨着空氣,我嘗試從遠程服務器加載文件,並使用默認應用程序打開文件。Flex遠程服務器下載文件
private function getRemoteCourr(PathFichier:String, FileName:String):void {
urlStream = new URLStream();
fileData = new ByteArray();
var urlRemoteCourr:String = new urlManager().urlCourriersPat();
var PathFichierGlob: String = urlRemoteCourr+PathFichier;
var urlReq:URLRequest = new URLRequest(urlRemoteCourr);
urlStream.addEventListener(Event.COMPLETE, function(e:*):void {fileLoaded(e,FileName)});
urlStream.load(urlReq);
}
private function fileLoaded(event:Event, PathFichier:String):void {
urlStream.readBytes(fileData, 0, urlStream.bytesAvailable);
var file:File = File.documentsDirectory.resolvePath(PathFichier);
var fileStream:FileStream = new FileStream();
fileStream.openAsync(file, FileMode.WRITE);
fileStream.writeBytes(fileData, 0, fileData.length);
fileStream.close();
file.openWithDefaultApplication();
}
隨着這部分代碼,文件被創建的文檔目錄(我想),但內容不是原來的文件內容。 對於一個Word文檔時,新的內容是
Index of /MyApp/LinkMySQL/Customer/Courriers
Name
Last modified
Size
Description
Parent Directory
-
0/
13-Feb-2012 20:24
而不是用圖片和文字Word文檔。
嗯。你正在做一個異步打開,但然後試圖寫在下一行。如果你需要進行異步打開,你是不是應該在COMPLETE事件被觸發後才寫字節?或者只是使用同步打開操作。我不知道這是否是問題 - 只是一個觀察。 – merv 2012-02-14 02:56:54
這看起來很像目錄索引,你是正面的,你正在加載的url是正確的嗎?我猜你會錯過最後的實際文件名。 – grapefrukt 2012-02-14 06:55:39