Apache flex 如何指定远程计算机的位置&x27;URLRequest参数中的文件?-编辑

Apache flex 如何指定远程计算机的位置&x27;URLRequest参数中的文件?-编辑,apache-flex,flash,flex3,download,urlrequest,Apache Flex,Flash,Flex3,Download,Urlrequest,您好,现在我已经找到了如何在URLRequest参数中提供相对路径并下载该文件。我是从我的房间里找到的。感谢Christian Nunciato和heri0n 所以现在如果给出我的机器的相对路径,C:/sample/DefectList.xls它可以工作。 现在我必须访问保存在服务器机器或任何其他机器(比如我的队友的机器)中的xls文件。ip地址是172.17.196.124,位置是C:/sample/test.xls 我试过了 var请求:URLRequest=新的URLRequest”fil

您好,现在我已经找到了如何在URLRequest参数中提供相对路径并下载该文件。我是从我的房间里找到的。感谢Christian Nunciato和heri0n

所以现在如果给出我的机器的相对路径,
C:/sample/DefectList.xls
它可以工作。 现在我必须访问保存在服务器机器或任何其他机器(比如我的队友的机器)中的xls文件。ip地址是
172.17.196.124
,位置是
C:/sample/test.xls

我试过了
var请求:URLRequest=新的URLRequest”file://172.17.196.124/c:/sample/test.xls");
但它抛出了错误#2032

如何将远程位置称为相对路径

<?xml version="1.0" encoding="utf-8"?> 
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="loadFile()"> 

<mx:Script> 
    <![CDATA[ 

            private var loadedFile:ByteArray; 

            private function loadFile():void 
            { 
                    //var request:URLRequest = new URLRequest("C:/sample/DefectList.xls"); 
                    var request:URLRequest = new URLRequest("file://172.17.196.124/c:/sample/test.xls"); 

                    var urlLoader:URLLoader = new URLLoader(request); 

                    urlLoader.addEventListener(Event.COMPLETE, onURLLoaderComplete); 
                    urlLoader.dataFormat = URLLoaderDataFormat.BINARY; 
                    urlLoader.load(request); 
            } 

            private function onURLLoaderComplete(event:Event):void 
            { 
                    loadedFile = event.target.data; 
            } 

            private function saveLoadedFile():void 
            { 
                    var file:FileReference = new FileReference(); 
                    file.save(loadedFile);  
            } 

    ]]> 
  </mx:Script> 

  <mx:Button label="Save File" horizontalCenter="0" verticalCenter="0" click="saveLoadedFile()" /> 

</mx:Application> 

您不能直接从flex下载内容到用户桌面上。您必须从服务器上执行此操作。要开始从服务器下载文件,请使用方法。只有在用户同意的情况下才能进行下载-如果用户在下载提示窗口中单击“取消”,则将取消下载

downloadURL = new URLRequest();
downloadURL.url = filename_relative_to_swf_location;
file = new FileReference();
file.addEventListener(Event.COMPLETE, completeHandler);
file.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
file.download(downloadURL, fileName);
private function completeHandler(event:Event):void 
{
  trace("completeHandler: " + event);
}
private function ioErrorHandler(event:IOErrorEvent):void 
{
  trace("ioErrorHandler: " + event);
}

如果您试图创建一个可以处理本地文件的应用程序,您可能应该创建一个AIR项目,而不是WebFlex项目,因为它为您提供了处理文件的工具。只有从硬盘上打开已编译的swf,本地文件才能工作。如果swf是从web服务器加载的,则安全策略将禁止任何flex swf轻松访问本地文件

一些可能会派上用场的视频:

* Comparing Flash, Flex, Flash Player and Adobe AIR (5:30)
* Exercise 13: Creating and deploying an AIR application

上,我的问题是,如果我需要使用URLRequest方法,我必须使用http或https作为url。但是我有从本地文件系统下载的文件,它只有相对路径,比如C:/Documents/。。。等等,所以我不能使用URL请求。如果我使用URLLoader,我可以通过在URLRequest中提供相对路径来获取内容。现在我需要将内容保存为文件。我已经编辑了我的问题以保留代码的一部分让我直截了当地说:你想从用户的桌面加载一个文件并将其下载回用户(可能在修改后)?不,实际上我想将文件从服务器计算机下载到我的本地计算机。但我只能得到服务器中文件位置的相对路径。我以更好的方式编辑了我的问题。请注意..您不能使用“D:/urlLoaderExample.txt”这样的地址从服务器加载文件-这是客户端的本地文件,而不是服务器端文件。服务器端文件将具有相对路径(如assets/data.txt)或完整路径(如)。目前我们没有服务器的任何域名。我们只使用IP地址。那么在这种情况下我该怎么做呢?