quarta-feira, 17 de março de 2010

byte array to image flex 2

No flex 3, se você tem um ByteArray de uma imagem, basta você passá-lo para o source do image que o bytearray vira uma imagem.

public var myByteArray:ByteArray;
<mx:Image source="{this.myByteArray}"/>

já no flex 2... não funciona!

aqui na empresa tem um projeto antigo que é em flex 2 e tive que fazer isso, tentei bastante mas não consegui fazer isso apenas no flex, então fiz o seguinte:

criei um servlet para escrever a imagem e o chamei a partir do source do mx:Image

//servlet
byte[] image = /*busca byte array no banco*/;
OutputStream out = response.getOutputStream();
out.write(image);
out.close();

//flex
<mx:Image source="{this.getContextPath() + '/showimage'}"/>

public function getContextPath():String
{
var url:String = Application.application.url;
var pos:int = url.lastIndexOf("/");
url = url.substring(0, pos);
return url;
}

Um comentário: