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 ?
Só uma sugestão…
Vc sabe se o radix do byte array enviado é o mesmo do recebido no flex?
Consegui resolver, ficou assim …
[code]
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;
}
}[/code]
att.
Grande Ricardo,
Muito obrigado, estava com esse problema em uma aplicação mobile no Flash Builder e agora funcionou!
Valeu mesmo!