Сохранить загрузку без ссылки на файл - PullRequest
2 голосов
/ 02 декабря 2011

Есть ли способ загрузить файл с помощью URLLoader, а затем сохранить его на диск без использования файловой ссылки или чего-либо, что использует диалог? Вот что у меня есть, но не работает:

public function onDownloadComplete(e:Event):void
{
    DownloaderProgress.label = 'Download Done';

    var loader:URLLoader = URLLoader(e.target);
    var rtsFile:File = File.applicationStorageDirectory.resolvePath("RTS.zip");
    var rtsStream:FileStream = new FileStream();
    rtsStream.open(rtsFile, FileMode.WRITE);
    rtsStream.writeBytes(loader.data);
    rtsStream.close();
}

Также, чтобы уточнить, моя программа в Adobe Air. Таким образом, оно будет запускаться как настольное приложение, а не как флэш-объект на веб-странице.

Ответы [ 2 ]

6 голосов
/ 02 декабря 2011

Вы должны использовать URLStream вместо URLLoader:

var downloadStream:URLStream = new URLStream();
downloadStream.addEventListener(Event.COMPLETE, onDownloadComplete);
downloadStream.load(new URLRequest(url));

// ...

private function onDownloadComplete(event:Event):void
{
    var bytes:ByteArray = new ByteArray();
    downloadStream.readBytes(bytes);

    try
    {           
        // delete old file first
        if (_saveToFile.exists)
        {
            _saveToFile.deleteFile();
        }
        _fs = new FileStream();
        _fs.addEventListener(IOErrorEvent.IO_ERROR, onSaveFileIOError);
        _fs.open(_saveToFile, FileMode.WRITE);
        _fs.writeBytes(bytes);
        _fs.close();

        _fs.removeEventListener(IOErrorEvent.IO_ERROR, onSaveFileIOError);
    }
    catch (error:Error)
    {
        trace("could not write file to local machine");
    }
}

Я просто скопировал и вставил код из моего класса.не завершен на 100%, но должен указывать правильное направление ...

0 голосов
/ 02 декабря 2011

Полагаю, вы сможете сделать это, если будете использовать упаковщик, такой как SWFStudio.

http://www.northcode.com/forums/showthread.php?t=10108&highlight=download

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...