一尘不染

将base64字节数组转换为图像

jsp

我有一个具有属性id,desc和imageByteArray的表单bean。Struts动作被执行,并将其重定向到JSP,我想在其中访问这些bean属性,例如id,desc并转换imageByteArray并将其显示为图像。

我使用Base64编码字节数组-其中this.bean.imageByteArray引用表单bean

this.bean.setImageByteArray(new org.apache.commons.codec.binary.Base64().encode(imageInByteArr));

我尝试了这个,但是没有用

<img src="data:image/jpg;base64,<c:out value='${bean.imageByteArray}'/>" />

字节数组(byte [] imageByteArray)指的是base64编码的JPG图像,我得到以下img标签作为输出,显然没有任何显示,

<img src="data:image/jpg;base64,[B@2e200e">

任何想法如何转换base64字节数组并在JSP中显示为图像?


阅读 431

收藏
2020-06-08

共1个答案

一尘不染

您得到的只是数组的toString输出。但是,您需要将字节数组转换为字符串。

您应该在bean中创建一个方法

public String getByteArrayString()
{
   return new String(this.imageByteArray);
}

并在您的JSP中引用它。

从技术上讲,您应该定义用于base64字节数组的编码,由于所有字符都在标准7位ASCII范围内,因此这不是必需的。

2020-06-08