我遇到了一个问题,我无法在GWT中显示我的数据库中的图像,即使我证明了这一点,并且我可以将图像保存在我的计算机中。代码如下:
byte[] bytes = new byte[8096];
int len = 0;
while ( (len = in.read( bytes ))> 0 )
{
if(!fichero.exists())
{
out.write( bytes, 0, len );
}
}
out.flush();
out.close();
in.close();
//byte[] bytes = IOUtils.toByteArray(in);
String base64 = Base64Utils.toBase64(bytes);
//base64 = "data:image/png;base64,"+base64;
base64 = "data:image/gif;base64,"+base64;
return base64;
}
else
{
return "http://cracktouch.com/wp-content/uploads/2011/02/Run-Like-Hell-Deluxe.png";
}这段代码在GreetingServiceImpl类中。" in“是包含正确图像的输入流,因为我可以将图像保存在计算机中,但当我使用字符串base64时,无法在GWT中显示它,例如: image image = new Image(base64);contenido.add( Image );有什么建议吗?
发布于 2011-05-21 06:30:06
bytes数组的大小是固定的,并且比图像数据大-因此在末尾有一些未使用的0。
对Base64Utils.toBase64(bytes)的调用会将包含未使用数据的整个数组转换为字符串。
修剪数组或使用Base64实现,您可以在其中指定输入数据的大小。
https://stackoverflow.com/questions/6075867
复制相似问题