Flex HttpService receber imagem byte[] java [RESOLVIDO]

3 respostas
RicardoYukito

meu Servlet retorna um byte[] que é uma imagem e eu preciso apresentar no flex,

Servlet

OutputStream out  = response.getOutputStream();
		
		out.write(new EmpresaDAO().getLogoEmpresa(idEmpresa)// retorno desse cara eh o byte[] da imagem); 
		
		out.flush();
		out.close();

no flex …

<mx:HTTPService id="httpDownload" 
	method="POST"
					
	result="resultDownload(event)"
	showBusyCursor="true">
</mx:HTTPService>

	[Bindable]
	public var imagemLogo : ByteArray  = null;

  public function resultDownload(e : ResultEvent):void {
          imagemLogo  =  e.resultlt as ByteArray;
  }	

<mx:Image x="8.5" y="10" height="130" width="221" id="imgLogo" source="{imagemLogo}"/>

o retorno esta ok! mas nao carrega a imagem, o que pode ser ?

3 Respostas

Luiz_Augusto_Prado

Só uma sugestão…
Vc sabe se o radix do byte array enviado é o mesmo do recebido no flex?

RicardoYukito
Consegui resolver, ficou assim ...
public function downloadLogo () : void {
		    
		    
		    	
		   var request:URLRequest = new URLRequest();
            request.url = Monitor.urlNavegador+"downloadService";
            request.method = URLRequestMethod.POST;
            request.data = new URLVariables("id="+idEmpresa);
            var loader:Loader = new Loader();
            loader.contentLoaderInfo.addEventListener(Event.COMPLETE, displayImage);		 	
			loader.load(request);
				
      }


 
		protected function displayImage(event:Event):void
		{
		 	if (event.target as Object !=null) {
		 			var loader:Loader = (event.target as LoaderInfo).loader;
		 			 imagemLogo = loader.content;
    		}    	
		}

att.

I

Grande Ricardo,

Muito obrigado, estava com esse problema em uma aplicação mobile no Flash Builder e agora funcionou!

Valeu mesmo!

Criado 30 de setembro de 2011
Ultima resposta 14 de out. de 2011
Respostas 3
Participantes 3