サーバーからバイナリファイルをダウンロードして保存

AIRからリクエストを送信し、サーバーから送られるファイルデータを受信する方法。
例では、受信したファイルはアプリケーション保存領域に保存しています。


・URLLoaderでリクエスト送信

private function download():void
{
    var req:URLRequest = new URLRequest();
    var vars:URLVariables = new URLVariables();

    //キーに「filename」、valueに「hoge.txt」を設定
    vars.filename = "hoge.txt";
    req.data = vars;
    //POSTを指定
    req.method = URLRequestMethod.POST;
    req.url = "送信先のURL(PHPファイルパスなど)";

    var loader:URLLoader = new URLLoader();
    loader.addEventListener(Event.Complete, onComplete);
    loader.load(req);
}

サーバー側でリクエストを受け取ってファイルデータを送信
(PHPの場合はreadfile()など)

・受信時のファイル保存処理

private function onComplete(event:Event):void
{
    var stream:FileStream = new FileStream();
    //アプリケーション保存領域に「hoge.txt」というファイル名で保存
    var file:File = File.applicationStorageDirectory.resolvePath("hoge.txt");
    stream.open(file, FileMode.WRITE);
    stream.writeBytes(event.target.data);
    stream.close();
}

もちろん、AIR for iOS(Android)でも使えます。