Как управлять откликом изображения Mysql в gwt? - PullRequest
1 голос
/ 20 мая 2011

У меня проблема, я не могу отобразить изображение из моей базы данных в 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» - это Inputstream с изображением, которое является правильным, потому что я мог сохранить изображение на своем компьютере, но я не могу отобразить его в GWT, когда я использую строку base64 следующим образом: Изображение изображение = новое изображение (base64); contenido.add (изображение); Любое предложение?

1 Ответ

1 голос
/ 21 мая 2011

Массив bytes имеет фиксированный размер и больше, чем данные изображения - поэтому в конце есть несколько неиспользуемых нулей.

Вызов Base64Utils.toBase64(bytes) преобразует весь массив, включая неиспользуемые данные, в строку.

Либо обрежьте массив, либо используйте реализацию Base64, где вы можете указать размер входных данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...