Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > base64 image на jsp


Автор: garbuz 25.2.2009, 23:55
Есть изображение, которое закодировано в base64 последовательность.
Это изображение необходимо вывести на jsp странице. Кто-нибудь сталкивался?

Нашел вот такую штуку http://iharder.sourceforge.net/current/java/base64/
там есть такой метод, который декодирует строку в массив байтов
Код

 String base64string = "R0lGODlhUAAPAKIAAAsLav///88PD9WqsYmApmZmZtZfYmdakyH5BAQUAP8ALAAAAABQAA8AAAPb\n" +
                "WLrc/jDKSVe4OOvNu/9gqARDSRBHegyGMahqO4R0bQcjIQ8E4BMCQc930JluyGRmdAAcdiigMLVr\n" +
                "ApTYWy5FKM1IQe+Mp+L4rphz+qIOBAUYeCY4p2tGrJZeH9y79mZsawFoaIRxF3JyiYxuHiMGb5KT\n" +
                "kpFvZj4ZbYeCiXaOiKBwnxh4fnt9e3ktgZyHhrChinONs3cFAShFF2JhvCZlG5uchYNun5eedRxM\n" +
                "AF15XEFRXgZWWdciuM8GCmdSQ84lLQfY5R14wDB5Lyon4ubwS7jx9NcV9/j5+g4JADs=";
 byte [] data = Base64.decode(base64string);

Как потом это отобразить на jsp?  smile 

Автор: Tony 26.2.2009, 00:44
Или так:
Код

<img src="data:image/gif;base64,R0lGODlhDwAPAKECAAAAzMzM/////
wAAACwAAAAADwAPAAACIISPeQHsrZ5ModrLlN48CXF8m2iQ3YmmKqVlRtW4ML
wWACH+H09wdGltaXplZCBieSBVbGVhZCBTbWFydFNhdmVyIQAAOw=="
alt="Base64 encoded image" width="150" height="150"/>

Или пиши сервлет(контроллер) каторый будет выдавать по запросу етот массив типа:
Код

<img src="loadImage.do?imageId=234532452"/>

A в сервлете пишешь:
Код

Достаёшь обьект по ид;
 String base64string = "R0lGODlhUAAPAKIAAAsLav///88PD9WqsYmApmZmZtZfYmdakyH5BAQUAP8ALAAAAABQAA8AAAPb\n" +
                "WLrc/jDKSVe4OOvNu/9gqARDSRBHegyGMahqO4R0bQcjIQ8E4BMCQc930JluyGRmdAAcdiigMLVr\n" +
                "ApTYWy5FKM1IQe+Mp+L4rphz+qIOBAUYeCY4p2tGrJZeH9y79mZsawFoaIRxF3JyiYxuHiMGb5KT\n" +
                "kpFvZj4ZbYeCiXaOiKBwnxh4fnt9e3ktgZyHhrChinONs3cFAShFF2JhvCZlG5uchYNun5eedRxM\n" +
                "AF15XEFRXgZWWdciuM8GCmdSQ84lLQfY5R14wDB5Lyon4ubwS7jx9NcV9/j5+g4JADs=";
 byte [] data = Base64.decode(base64string);
//пишешь в респонсе
response.getOutputStream().write(data);


Автор: AlexeyVorotnikov 26.2.2009, 11:28
Цитата(Tony @  26.2.2009,  00:44 Найти цитируемый пост)
Или так:
Код

<img src="data:image/gif;base64,R0lGODlhDwAPAKECAAAAzMzM/////
wAAACwAAAAADwAPAAACIISPeQHsrZ5ModrLlN48CXF8m2iQ3YmmKqVlRtW4ML
wWACH+H09wdGltaXplZCBieSBVbGVhZCBTbWFydFNhdmVyIQAAOw=="
alt="Base64 encoded image" width="150" height="150"/>



А так в любом браузере работает?

Автор: Tony 26.2.2009, 11:40
AlexeyVorotnikov,  Опере и Лисе, но должен и в ИЕ7,но у меня не отработал почемуто.

Автор: garbuz 26.2.2009, 12:12
В IE 7 не работает, поэтому и начались извраты.
Tony, попробовал способ с сервлетом, все заработало, спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)