FileReference não executa o download
Podemos forçar o download de arquivos como um txt, jpg, gif, etc, utilizando PHP manipulando o header. No Flash podemos utilizar também a classe FileReference, faz a mesma coisa, e de forma muito simples, portanto se estamos utilizando o Flash é muito mais vantajoso utilizar a classe do próprio actionscript.
Mas este post não tem intenção de abordar a classe FileReference, e sim de um problema pelo qual passei, observe o script abaixo:
function onDownload():void { var fl:FileReference = new FileReference(); fl.download(new URLRequest("texto.txt")); }
Um script simples que parece funcionar, entretanto após clicar em salvar na janela aberta no browser o arquivo nunca será salvo.
O problema ocorre porque ao contrário da classe URLLoader, a classe FileReference não permanece disponível quando o escopo onde está presente é descartado, assim a caixa para salvar é aberta, mas o objeto FileReference já foi eliminado.
A solução é muito simples, basta declarar o objeto FileReference em um escopo que estará disponível enquanto o objeto for necessário, em classes declare como uma propriedade.
O script abaixo funcionará:
var fl:FileReference = new FileReference(); function onDownload():void { fl.download(new URLRequest("texto.txt")); }
O problema é documentado pela Adobe em FileReference.download() in SWF file fails.




July 29th, 2008 at 15:34
Boaa Erick! ;D
Obrigado pela dica!
Eee, se quiser podia fazer um artigo sobre a classe FileReference, que tal?
Ficaria feliz.
HAHA
Grande Abraço.
August 27th, 2008 at 21:51
Obigado. Que grande dica. Por favor continue com as suas orientações.
September 18th, 2008 at 14:41
Hi, I found your blog on this new directory of WordPress Blogs at blackhatbootcamp.com/listofwordpressblogs. I dont know how your blog came up, must have been a typo, i duno. Anyways, I just clicked it and here I am. Your blog looks good. Have a nice day. James.
October 28th, 2008 at 13:35
Beleza Erick.
Estou com um pequeno problema, mas aparentemente parece ser bem maior do que pensava.
Consigo fazer o upload sem problemas de um arquivo com caracteres especiais ex: logo_calça.jpg, ok.
Ai existe outro painel que colocamos para efetuar o download dos arquivos postados , porém no Flex não baixa arquivos com caracteres especiais, ou com espaço entre as palavras.
Enfim poderiam me ajudar.
Muito obrigado.
Abraços.