Загрузка файла Flex 3 - без URLRequest - PullRequest
0 голосов
/ 07 апреля 2010

Мое клиентское приложение Flex получило некоторые данные из серверной части (RemoteObjects, BlazeDS, Spring). Клиент получил все необходимые данные, теперь ему нужно поместить некоторую информацию в формате CSV и сделать ее доступной для загрузки.

Использование Flex 3 для этого. Есть идеи?

Спасибо, Sri

Ответы [ 2 ]

3 голосов
/ 07 апреля 2010

Если вы компилируете для Flash Player 10, вы можете вызвать функцию FileReference.save() для сохранения в локальной файловой системе:

http://help.adobe.com/en_US/FlashPlatform//reference/actionscript/3/flash/net/FileReference.html#save()

Просто убедитесь, что вы обратили внимание на этот раздел:

В Flash Player этот метод можно успешно вызывать только в ответ на пользовательское событие (например, в обработчике события для щелчка мыши или события нажатия клавиши). В противном случае вызов этого метода приводит к тому, что Flash Player выдает исключение Error. Это ограничение не распространяется на содержимое AIR в изолированной программной среде приложения.

Единственная альтернатива, если вы не можете скомпилировать для Flash Player 10, - это отправить данные на сервер и попросить пользователя загрузить их оттуда как CSV.

Вы можете сделать это с помощью FileReference.download() аналогично save(): http://help.adobe.com/en_US/FlashPlatform//reference/actionscript/3/flash/net/FileReference.html#download()

0 голосов
/ 07 апреля 2010

К сожалению, вы не можете этого сделать. Вы должны использовать FileReference + URLRequest, вы не можете на лету создать файл, доступный для загрузки в Flash Player. Одним из обходных путей является отображение ваших данных в текстовом файле и предоставление пользователю возможности копировать / вставлять. Конечно, это работает, только если у вас есть небольшое количество информации.

...