Eu já respondi lá no flex-brasil, mas aí vai de novo...

Não dá pra fazer o que vc quer Bruno. Tem que fazer esta análise no
server e retornar os metadados para o flex depois do upload.

Por razões de segurança, a classe que faz upload (FileReference) não
disponibiliza nenhum método para 'ler' arquivos.
Vc só pode selecionar um arquivo e fazer o upload.

A sugestão do Vicente, de usar o Loader para ler o arquivo funciona,
mas ela não permite selecionar o arquivo, vc tem que saber o path para
o arquivo antes.

E tb não dá pra combinar as duas classes, por exemplo, usar
FileReference para escolhar o arquivo, usar Loader para carregar e
analisar, e depois upload.
FileReference tb não te dá o path do arquivo escolhido, novamente por
questões de segurança.

Lembre-se que  no caso Web vc está rodando em baixo de um browser e
isto traz várias limitações.

Agora, se tua aplicação for AIR aí é outra coisa, pois o AIR
disponibiliza as classes File, FileStrea e outras que te permitem
acesso total ao file system.

julio

On Mar 22, 11:51 am, Vicente Maciel Junior <macie...@gmail.com> wrote:
> Bruno... a maneira "programaticamente" mais correta, seria ler os metadados
> dos tipos de arquivos citados. Para isso vc precisaria ler a respeito da
> especificação de "header" de cada um deles.
>
> Desconheço em AS3, classes que já façam isso. Mas, é perfeitamente possivel,
> carregando os bytes dos arquivos citados na classe ByteArray e analisando-os
> conforme suas especificações. Como exemplo, você pode estudar as classes
> JPEGEncoder e PNGEncoder presentes na biblioteca AS3CoreLib 
> (http://code.google.com/p/as3corelib/) que servem para escrever um
> flash.display.BitmapData de um DisplayObject nos formatos citados.
>
> Em Java, creio que será mais fácil você encontrar algoritimos prontos. Nesse
> caso, vale ler sobre a integração AS3/Java possibilitada pelo MERAPI 
> (http://www.merapiproject.net/).
>
> Porém, existe uma forma de obter "aproximadamente" o mesmo resultado, embora
> não seja a mais indicada....
>
> Você pode usar a classe "flash.display.Loader" para carregar os arquivos
> (JPG, PNG e SWF) e através da propriedade "loaderInfo"
> (flash.display.LoaderInfo) obter a propriedade "content" e ler as
> informações da classe "flash.display.DisplayObject" (width, height e no caso
> do SWF a propriedade "totalFrames")
>
> No caso do .FLV, você pode usar as classes flash.net.NetConnect e
> flash.net.NetStream, que podem carregar tb arquivos locais. Não estou certo
> quanto as informações que você poderá ler. Mas eu pesquisaria um pouco disso
> tb. (OBS: Se você tivesse usando o Flash Media Server, que acho que não é o
> caso, vc teria o evento onMetaData... estou falando isso só pra vc não achar
> que esse evento vá funcionar no AIR lendo o arquivo diretamente OK?).
>
> Lembre-se... esses carregamentos não serão "visuais" se vc não fizer um
> addChild() em um "DisplayObject" (no caso do video, attachCamera() na
> instância do NetStream). Ou seja, vc não precisa exibir os conteudos
> carregados necessariamente.
>
> Desculpe não mandar nenhum código. Estou tb na correria aqui com projetos
> que tem dead-line essa semana.
>
> Numa pesquisa rápida, achei isso quando ao SWF (ler 
> header):http://www.brooksandrus.com/blog/2006/08/11/lightweight-swf-header-re...
>
> Outro link que pode ser util no caso de trabalhar com MetaData (integrar com
> o MERAPI ou criar versão AS3):http://code.google.com/p/jflvtool/
>
> Dica: Nativamente no Java, você tem as classes javax.imageio.metadata.* Acho
> que vc pode explorá-las para inclusive criar uma versão AS3 das classes Java
> (teoricamente).
>
> Detalhe... em ocasiões como essas que o projeto Alchemy 
> (http://labs.adobe.com/technologies/alchemy/) também se apresentaria bem,
> permitindo compilar codigos pré-existentes para esses recursos em C++ em
> bibliotecas SWC.
>
> BOA SORTE E BOM TRABALHO!
>
> Vicente Maciel Junior
> RiaBrazil - Senior Rich App Developer
> Independent Web Developer & Consultant
> Adobe Advanced Certified Developer
> Adobe Certified Instructor (ColdFusion & Flash Platform)
> +55 71 8120-0035
> MSN: macie...@gmail.com / Twitter: 
> macieljrhttp://www.riabrazil.com.brhttp://teclandoalto.blogspot.com
> Grupo de usuarios Oficial Adobe RIA-BA:http://bit.ly/ria-ba
>
> 2009/3/22 Bruno Brandão <brunolopesbran...@gmail.com>
>
> > Pessoal,
>
> > Estou fazendo uma aplicação que preciso fazer upload de 4 tipos de arquivos
> > diferentes: SWF, FLV, JPG, PNG e antes de continuar o upload precisava
> > testar as seguintes informações:
> > Caso SWF:
> > - width
> > - height
> > - duração do SWF
>
> > Caso FLV:
> > - width
> > - height
> > - duração do FLV
>
> > Caso JPG:
> > - width
> > - height
>
> > Caso PNG:
> > - width
> > - height
>
> > Alguém poderia me ajudar indicando ai o caminhos das pedras?
>
> > Muito obrigado,
> > --
> > Bruno Brandão
> > (71) 9909-3227
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---

Responder a