随着空气,我尝试从远程服务器加载文件,并使用默认应用程序打开文件。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