PDA

Просмотр полной версии : Чтение данных из открытого файла на компьютере


MaskiShow
11.11.2009, 02:26
Открываем текстовый файл. Как можно теперь прочитать его содержимое (как строку)?

var attach:flash.net.FileReference=new flash.net.FileReference;
var allTypes:Array = new Array();
var textTypes:Object = new Object();
textTypes.description = "Text Files (*.txt, *.rtf)";
textTypes.extension = "*.txt;*.rtf";
allTypes.push(textTypes);
listener=new Object();

listener.onSelect=function(selFile:Object){
trace(selFile.name);

}

И можно ли с помощью класса FileReference сохранить ("закачать") файл на локальный компьютер?

Также интересует, где флешка сохраняет на компьютере файлы SharedObject?

mooncar
11.11.2009, 11:17
Методы FileReference - только для работы с сервером.
1. Не получится. Казалось бы, можно было бы попробовать после onSelect вызвать load метода Loadvars, но нет. После onSelect мы можем получить только имя файла, а ссылку на файл увы, нет:
var listener:Object = new Object();
listener.onSelect = function(file:FileReference):Void {
lv.load(????????); //не получится, ссылки на файл мы не знаем

}

var lv:LoadVars = new LoadVars();
lv.onData = function (src:String) {
trace(src);
}

var fileRef:FileReference = new FileReference();
fileRef.addListener(listener);
fileRef.browse();

Вот все, что удается найти в объекте file (в аргументе функции-обработчика события onSelect):
_listeners [object Object]
postData undefined
creator undefined
creationDate Wed Nov 11 10:30:06 GMT+0300 2009
modificationDate Wed Nov 11 10:30:06 GMT+0300 2009
size 0
type .txt
name test.txt

Как видим, имя есть, а ссылки на файл (полный путь + имя) - нет.

Если мы делаем что-то вроде админки, то прочитать содержание после onSelect можем только загрузив файл на сервер и закачав его обратно.
(Я, например, так и сделал в паре админок).

2. Нет, нельзя.

По крайней мере, в AS2 и без надстроек типа Zinc дела обстоят так.

alexcon314
11.11.2009, 11:28
selFile.name - именно имя файла, а не полный путь к нему.
где флешка сохраняет на компьютере файлы SharedObject?
В юзерском профиле.
c:\Documents and Settings\[USER_NAME]\Application Data\Macromedia\Flash Player\#SharedObjects\
под вистой папка Documents and Settings вроде Users называется.
Некоторые новшества по работе с локальной файловой системой, которые вас, быть может, заинтересуют, введены в AS3 под 10-ым плеером. Почитайте доки.

MaskiShow
11.11.2009, 15:07
Как-то все взаимоисключающе...

Либо грузим файл с помощью load и читаем его, но тогда вручную указываем путь к файлу.
Либо "открываем" файл через explorer, но прочитать его не возможно...

SharedObject тоже не порадовал форматом хранения данных =((

mooncar
11.11.2009, 15:37
Ну флеш вроде как не заточен под работу с файловой системой.
Некоторые еще огорчаются, когда узнают, что писать данные в локальный файл тоже нельзя.
Смотрите в сторону AS3.

udaaff
11.11.2009, 15:58
Открываем текстовый файл. Как можно теперь прочитать его содержимое (как строку)?
В AS2 никак. В AS3 доступен ByteArray файла: FileReference.data (10 плеер).