您好我现在已经找到了如何在URLRequest paramate中提供相对路径并下载该文件。我是从this particular stack overflow post 找到的。感谢Christian Nunciato和heri0n。
所以现在如果给我的机器的相对路径,C:/sample/DefectList.xls
它的工作原理。
现在我必须访问保存在服务器机器或任何其他机器上的xls文件,比如我的队友的机器。 IP地址为172.17.196.124
,位置为C:/sample/test.xls
。
我试过了
var request:URLRequest = new 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>
答案 0 :(得分:0)
您无法直接从flex将内容下载到用户的桌面上。你必须从服务器上做到这一点。要从服务器开始下载文件,请使用FileReference.download()方法。只有在用户同意的情况下才会进行下载 - 如果用户在下载提示窗口中单击取消,则会被取消。
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);
}
答案 1 :(得分:0)
如果您正在尝试创建一个可以使用本地文件的应用程序,您应该创建一个AIR项目而不是Web Flex项目,因为它为您提供了处理文件的工具。只有从硬盘驱动器打开已编译的swf时,本地文件才有效。如果从Web服务器加载swf,安全策略将禁止任何flex swf轻松访问本地文件。
一些可能派上用场的视频:
* Comparing Flash, Flex, Flash Player and Adobe AIR (5:30)
* Exercise 13: Creating and deploying an AIR application