Flex - Save As..[RESOLVIDO]

6 respostas
lira_jvm

Galera to precisando salvar um arquivo direto da minha aplicação flex no computador do user.

Tenho encontrado dificuldades p/ fazer isso sem a necessidade de um script server-side, pois o flash player, teoricamente não permite acesso ao sistema de arquivos, isto só é possível em aplicações AIR.
Mas me lembrei ter acessado um editor de imagens em flex que permitia salvar as imagens no pc, então pesquisei e encontrei esses 2 sites que fazem isso.

http://pixlr.com/editor/
http://www.splashup.com/

Minha pergunta é como ? Como posso salvar um arquivo no desktop ?
No meu caso quero salvar um CSV, que gero na aplicação.

Valew.

6 Respostas

F

Dá uma olhada em FileReference.download.

[]s

lira_jvm

fabiophx:
Dá uma olhada em FileReference.download.

[]s


Não funciona somente para Adobe AIR ?

marcosFA

Não não, faz o seguinte:

var fileRef:FileReference = new FileReference();
fileRef.save(seuArquivoGerado, "nomeDoArquivo.extensão");//"arquivo.txt"

testa ai…
pode ser que precise fazer um

var ba:ByteArray = new ByteArray();
ba.writeObject(seuArquivoGerado);

e depois…

fileRef.save(ba, "nomeDoArquivo.extensão");//"arquivo.txt"

A unica necessidade é ter o flash player 10, essa é uma nova feature incluída no FP 10.

lira_jvm

Show marcos…
Resolvi enviando p/ o servidor e de lá enviando p/ download, mas prefiro fazer o download direto do flex, pois o conteúdo do arquivo pode ser gigante dependendo dos filtros que o user aplicar, e pode ultrapassar os limites do post.

Vou seprar um tempo p/ testar essa solução.

Uma pergunta, a variável, seuArquivoGerado, é uma String com o conteúdo do arquivo ?

Valew, abs.

marcosFA

Oi Lira, seuArquivoGerado pode ser qualquer coisa mesmo entre:

If the value is null, the application throws an ArgumentError exception.
If the value is a String, it is saved as a UTF-8 text file.
If the value is XML, it is written to a text file in XML format, with all formatting preserved.
If the value is a ByteArray object, it is written to a data file verbatim.
If the value is none of the above, the save() method calls the toString() method of the object to convert the data to a string, and it then saves the data as a text file. If that fails, the application throws an ArgumentError exception.
lira_jvm

marcosFA:
Oi Lira, seuArquivoGerado pode ser qualquer coisa mesmo entre:

If the value is null, the application throws an ArgumentError exception. If the value is a String, it is saved as a UTF-8 text file. If the value is XML, it is written to a text file in XML format, with all formatting preserved. If the value is a ByteArray object, it is written to a data file verbatim. If the value is none of the above, the save() method calls the toString() method of the object to convert the data to a string, and it then saves the data as a text file. If that fails, the application throws an ArgumentError exception.


Certo, valew pela ajuda Marcos, não vou mexer com isso agora, mas vou testar sua solucão.
Valew pela ajuda pessoal :slight_smile:


Os jovens se cansarão e se fatigarão, e os moços certamente cairão.
Mas os que esperam no SENHOR renovarão as forças, subirão com asas como águias; correrão, e não se cansarão; caminharão, e não se fatigarão. Isaías 40:30-31
Only JESUS saves. Romanos 10:9-10

Criado 10 de agosto de 2010
Ultima resposta 13 de ago. de 2010
Respostas 6
Participantes 3