Flex: upload error #2038

Recentemente, ao fazer o upload de arquivos com Flex tive este problema: IOError #2038. Pesquisando na internet, vi que este é um erro que muitas pessoas estão enfrentando, e volta e meia é bem complicado de se resolver. Vou postar aqui o motivo do meu problema e a solução encontrada.

Primeiro de tudo: o que é este maldito IOError 2038?

É um erro genérico disparado pelo Flex quando ele não consegue acessar o link para fazer o upload. Sim, genérico!!!! Isso significa que milhares de coisas podem ter acontecido.

O mais comum é que o link está errado ou, no caso de Java a classe de upload está lançando alguma exceção.

Para verificar, é bom criar um formulario HTML para fazer o mesmo procedimento e ver se dá tudo certo.

Não foi meu caso.

Para PHP, teve gente que resolveu alterando o arquivo .htaccess e até mesmo problemas com mod_security.

No meu caso, o upload é feito através de um servlet e o arquivo não é salvo em disco. Pior: funcionava no Internet Explorer. Nos outros browsers não.

Atrávés de uma exaustiva pesquisa, descobri um problema com a classe FileReference no Flash Player do Firefox/Chrome. Ela não envia os dados para autenticação HTTPS/SSL para o servidor na requisição. Sendo assim, se o link está protegido por JAAS ou algum outro serviço de autenticação, irá falhar e o erro irá acontecer.

Possíveis soluções: desproteger o link de upload ou enviar o jsessionid na requisição do  Flex.

No meu caso, preferi enviar o jsessionid na requisição:

var request:URLRequest = new URLRequest("_seu_link_de_upload"  +  ";jsessionid=" + jsessionid_da_sessao );

Neste caso, o problema foi resolvido.
Espero ter ajudado.

Abraço!

Deixe um Comentário

2 Comentários.

  1. Dae Hallan, sou o Mawcor irmao do Lucjedi rsrsrs, Nao sabia que tu tava usando o flex tbm. Show de bola, depois de estudar e desenvolver um sisteminha em Ruby on Rails to começando a estudar agora o Java + Flex com o BlazeDS e to gostando do que to vendo, a interface fica bem bacana e o back-end fica confiável. Ruby on Rails vai ficar para minhas opções de necessidades pequenas e rápidas(rápidas eu digo é de desenvolvimento, pq de performance deixa a desejar se falarmos de grande fluxo de dados, estudos comprovados do meu TCC que foi a comparação de Java com o Ruby heehhehe). Abraço cara.

  2. Cara, me ajudou parcialmente erro é genérico xD, eu tô tendo esse mesmo problema aproblema a um tempão com um tempão e ainda não resolvi.

Deixe um Comentário


NOTA - Você pode usar estesHTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>