Из URLLoader в FileStream (или наоборот) - PullRequest
1 голос
/ 20 февраля 2011

У меня есть функция, работающая с файлом, жестко закодированным через URL Loader, но я хочу иметь возможность выбрать файл из любого места на моем жестком диске в приложении Air.

    public function loadFile(): Array {
        csv = new URLLoader();
        csv.addEventListener(Event.COMPLETE, completeHandler);
        csv.load(new URLRequest('carelinksample.csv'));
        return results;
    }

и completeHandler, конечно, помещаетданные из URLRequest в массив, как мне это нужно.Но я хочу заменить новый URLRequest какой-то командой Filestream (или что-то еще, возможно, если есть другой способ выбора локальных файлов с помощью Air).

У меня есть этот код для загрузки локального файла, но я 'я не совсем уверен, что с ним делать, чтобы заставить его работать с тем, что у меня есть в URLLoader

private var filetype:FileFilter = new FileFilter("CSV Files(*.csv)","*.csv");           

public function chooseFile(event:MouseEvent):void {
                var f:File = File.desktopDirectory;
                f.browseForOpen("Select file to open", [filetype]);
                f.addEventListener(Event.SELECT, function (event:Event):void {
                    var fs:FileStream = new FileStream();
                    fs.open(event.target as File, FileMode.READ);
                    fs.close();
                });

1 Ответ

1 голос
/ 20 февраля 2011

Этот код должен делать то, что вам нужно:

private var _ref : FileReference;    
private function browse() {
    _ref = new FileReference();
    _ref.addEventListener(Event.SELECT, onSelect);
    _ref.browse([new FileFilter("CSV File", "*.csv")]);
}

private function onSelect(event : Event) : void {
    _ref.addEventListener(Event.COMPLETE, onData);
    _ref.load();
}

private function onData(event : Event) : void {
    parse(_ref.data.readUTFBytes(_ref.data.bytesAvailable));
}

private function parse(data : String) : void {

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