Só nao esqueça de dar um fileReferenceInstance.clear() depois no Complete... senao vc vai ficar com o kb (ou mb) do arquivo carregado na memória do flash player desnecessariamente.
Também, vale ressaltar para não usar esse método de leitura para arquivos grandes (dificil mensurar exatamente a partir de qnts mbs, por isso recomendamos usar o back-end pra isso) mas tipo.. arquivos com vários megas de tamanho podem dar problemas com isso pois o FileReference não faz um stream do arquivo (só o Adobe AIR pela classe FileStream)... mas acredito q se for para arquivos de retorno bancario (coisa de uns 1024kb, talvez 2mb por dia) dá pra usar sim. O Erko Bridee postou uma idéia de simular um stream usando o frameRate do flash player para carregar dados em massa de arquivos grandes (beeeem maiores q 2mb), deve estar nos históricos da lista (ou aqui ou na Flex-Brasil) ou, ainda, no blog dele. []'s Em 15 de dezembro de 2010 16:53, Clayton <[email protected]>escreveu: > Se quer mesmo fazer no flex... > Vai um exemplo com o sdk 3.5 e flashplayer 10.0 ou superior(flashplayer > anterior a este não dá suporte para alguns métodos e atributos do > Filereference): > > private var arquivo : FileReference; > > private function onImportar():void { > arquivo = new FileReference(); > arquivo.addEventListener(IOErrorEvent.IO_ERROR, > onUploadError, false, 0, true); > arquivo.addEventListener(Event.SELECT, onSelectArquivo, > false, 0, true); > arquivo.addEventListener(ProgressEvent.PROGRESS, > onUploadProgress, false, 0, true); > arquivo.addEventListener(Event.COMPLETE, onUploadComplete, > false, 0, true); > > try { > arquivo.browse([new FileFilter("Arquivo texto", > "*.txt;*.text")]); > } > catch (error:Error) { > Alert.show("Não foi possível abrir uma janela para > selecionar o arquivo." + " Verifique se o seu navegador web aceita este > recurso."); > } > } > > public function onUploadError(event:IOErrorEvent):void { > PopUpManager.removePopUp(progressBarWindow); > Alert.show("Ocorreu um erro ao fazer o upload do arquivo: " > + event.toString()); > } > > private function onSelectArquivo(event:Event):void { > if (arquivo != null) { > progressBarWindow = > ProgressBarWindow(PopUpManager.createPopUp(this, ProgressBarWindow, true)); > progressBarWindow.progressBar.indeterminate = false; > progressBarWindow.progressBar.mode = "manual"; > progressBarWindow.progressBar.maximum = arquivo.size; > arquivo.load(); > } > else { > Alert.show("Selecione um arquivo"); > } > } > > private function onUploadProgress(event:ProgressEvent):void { > > progressBarWindow.progressBar.setProgress(event.bytesLoaded, > event.bytesTotal); > } > > private function onUploadComplete(event:Event):void { > /* Pega a referencia do FileReference */ > arquivo = event.currentTarget as FileReference; > > /* Variavel para armazenar o ByteArray */ > //var data:ByteArray = new ByteArray(); > > /*A partir daqui tenho todo o texto no array "linhas", onde > cada linha do texto é uma posição no array*// > var linhas:Array = > arquivo.data.readMultiByte(arquivo.data.bytesAvailable, > "iso-8859-1").split("\n"); > . > . > . > . > > } > > Em 15 de dezembro de 2010 17:41, Guilherme Ventura de Souza < > [email protected]> escreveu: > > É recomendável e compensa muito mais fazer tudo via back end como já >> disseram, é um processo razoávelmente simples, então não será difícil >> pesquisar e aprender a fazer no back end mesmo, além do mais acredito que >> via back end também fique bem mais rápido a aplicação. >> >> *From:* Helio Antonio Francisco Silva <[email protected]> >> *Sent:* Wednesday, December 15, 2010 3:36 PM >> *To:* [email protected] >> *Subject:* Re: [flexdev] Re: Arquivos no Flex >> >> Minha linguagem de back end digamos que e muito tosca... por isso eu >> queria pegar o arquivo txt no flex extrair os dados e depois jogar via >> webservice toda a extrutura por que assim euainda poderia paginar caso fosse >> superior a 10.000 registros.. >> >> 2010/12/15 Mário Júnior <[email protected]> >> >>> Pq via webservice??? Faz um upload normal mesmo..... daí seu back-end vai >>> receber o arquivo, le-lo, dar as baixas dos boletos no banco de dados (de >>> acordo com o arquivo) e mandar para o flex o resultado (x boletos pagos, >>> $$$$ recebidos, etc). >>> >>> Já fiz assim.. nao é complicado. >>> >>> >>> []'s >>> >>> >>> >>> >>> Em 15 de dezembro de 2010 16:25, Helio Antonio Francisco Silva < >>> [email protected]> escreveu: >>> >>> Humm entao eu pegaria no flex e enviaria via Webservice o arquivo TXT ? >>>> sera que a webservice do flex envia Arquivo TXT ? >>>> >>>> 2010/12/15 Rodrigo da Rosa Elesbão <[email protected]> >>>> >>>> Você poderia solicitar o arquivo via httpRequest, mas assim como o >>>>> Leonardo falou seria muito melhor parsear esse txt no servidor e enviar >>>>> mastigado pro flex. >>>>> -- >>>>> Att, >>>>> Rodrigo da Rosa Elesbão <slipknabos(at)gmail.com> >>>>> Twitter: @relesbao <http://twitter.com/relesbao> >>>>> >>>>> -- >>>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>>>> Para enviar uma mensagem, envie um e-mail para >>>>> [email protected] >>>>> Para sair da lista, envie um email em branco para >>>>> [email protected] >>>>> Mais opções estão disponíveis em >>>>> http://groups.google.com/group/flexdev >>>>> >>>> >>>> >>>> >>>> -- >>>> *Hélio Antonio Fransico Silva* >>>> Desenvolvedor web >>>> Certificado Flash developer >>>> Certificado Flash Design >>>> Certificado web developer >>>> Consultor Microsiga / Totvs >>>> Desenvolvedor ADVPL / ASP >>>> Analista de sistemas e ERP Sênior. >>>> >>>> -- >>>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>>> Para enviar uma mensagem, envie um e-mail para [email protected] >>>> Para sair da lista, envie um email em branco para >>>> [email protected] >>>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev >>>> >>> >>> >>> >>> -- >>> Mario Junior >>> http://blog.mariojunior.com/ >>> @mariojunior >>> -- >>> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >>> Para enviar uma mensagem, envie um e-mail para [email protected] >>> Para sair da lista, envie um email em branco para >>> [email protected] >>> Mais opções estão disponíveis em http://groups.google.com/group/flexdev >>> >> >> >> >> -- >> *Hélio Antonio Fransico Silva* >> Desenvolvedor web >> Certificado Flash developer >> Certificado Flash Design >> Certificado web developer >> Consultor Microsiga / Totvs >> Desenvolvedor ADVPL / ASP >> Analista de sistemas e ERP Sênior. >> >> -- >> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >> Para enviar uma mensagem, envie um e-mail para [email protected] >> Para sair da lista, envie um email em branco para >> [email protected] >> Mais opções estão disponíveis em http://groups.google.com/group/flexdev >> >> -- >> Você recebeu esta mensagem porque está inscrito na lista "flexdev" >> Para enviar uma mensagem, envie um e-mail para [email protected] >> Para sair da lista, envie um email em branco para >> [email protected] >> Mais opções estão disponíveis em http://groups.google.com/group/flexdev >> > > > > -- > Clayton Marques Pereira > > -- > Você recebeu esta mensagem porque está inscrito na lista "flexdev" > Para enviar uma mensagem, envie um e-mail para [email protected] > Para sair da lista, envie um email em branco para > [email protected] > Mais opções estão disponíveis em http://groups.google.com/group/flexdev > -- Mario Junior http://blog.mariojunior.com/ @mariojunior -- Você recebeu esta mensagem porque está inscrito na lista "flexdev" Para enviar uma mensagem, envie um e-mail para [email protected] Para sair da lista, envie um email em branco para [email protected] Mais opções estão disponíveis em http://groups.google.com/group/flexdev
