Adobe AIR - 如何在没有保存对话框的情况下从Web服务器下载文件

时间:2010-06-21 07:07:22

标签: air

你好,我是来自韩国的Leo Hyun。

所以我想使用AIR制作下载程序。 我的网络服务器有一些文件。 我想下载该文件并保存我的桌面而不保存对话框。 我不知道如何解决它。实际上我只是AIR的初学者。

我正在使用Flash Builder 4& Flex 4.0& AIR 2.0。

有人帮我PLZ!

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                   xmlns:s="library://ns.adobe.com/flex/spark" 
                   xmlns:mx="library://ns.adobe.com/flex/mx"
                   creationComplete="startApp();">

<fx:Declarations>
    <!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations> 

<fx:Script>
    <![CDATA[
        import flash.net.FileReference;

        private var fr:FileReference;
        private var urlRequest:URLRequest;

        private var downloadPDFFile:String="<!--MY WEB SERVER LOCATIONS-->/TEST.pdf";

        private function startApp():void
        {
            fr = new FileReference();
            urlRequest = new URLRequest();
        }

        private function DownloadFile():void
        {
            urlRequest.url = downloadPDFFile;
            fr.download(urlRequest);
        }

        protected function btnDownload_clickHandler(event:MouseEvent):void
        {
            // TODO Auto-generated method stub
            DownloadFile();
        }
    ]]>
</fx:Script>

<mx:Button verticalCenter="0" horizontalCenter="0" label="Download File ASD" id="btnDownload" click="btnDownload_clickHandler(event)"/>

</s:WindowedApplication>

1 个答案:

答案 0 :(得分:0)

使用URLLoaderHTTPService加载文件内容,并使用FileFileStream类将其写入您选择的文件。注意不要覆盖用户自己的文件。

//inside complete handler of the loader:
var file:File = File.documentsDirectory.resolvePath("test.txt");
var fileStream:FileStream = new FileStream();
fileStream.open(file, FileMode.WRITE);
fileStream.writeUTF(str);
fileStream.close();