如何在gwt中管理Mysql图像响应?
我遇到了一个问题,即使我证明可以将图像保存在我的计算机中,我也无法在 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 中显示它,如下所示: 图像图像=新图像(base64); 添加(图像); 有什么建议吗?
I got a problem, I can't display an image from my Database in GWT, even when I proved and I could save the image in my computer. Here is the code:
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";
}
This code is in the class GreetingServiceImpl.
"in" is an Inputstream with the image which is correct because I could save the image in my computer, but I can't display it in GWT when I use the string base64 like this:
Image image = new Image(base64);
contenido.add(image);
Any suggestion?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
bytes
数组是固定大小的,并且比图像数据大 - 因此末尾有一些未使用的 0。调用
Base64Utils.toBase64(bytes)
会将整个数组(包括未使用的数据)转换为字符串。修剪数组或使用 Base64 实现,您可以在其中指定输入数据的大小。
The
bytes
array is fixed size and is bigger then the image data - so there are some unused 0s at the end.Call to
Base64Utils.toBase64(bytes)
converts the whole array including unused data to string.Either trim the array or use a Base64 implementation where you can specify size of input data.