如何在gwt中管理Mysql图像响应?

发布于 2024-11-08 21:44:51 字数 908 浏览 0 评论 0原文

我遇到了一个问题,即使我证明可以将图像保存在我的计算机中,我也无法在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

神回复 2024-11-15 21:44:51

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文