【问题标题】:convert JSP EL byte[] to image?将 JSP EL 字节 [] 转换为图像?
【发布时间】:2018-12-30 18:47:19
【问题描述】:

我有一个如下的jsp页面:

<c:forEach var="employeeVO" items="${list}">

    <img src="data:image/jpeg;base64,${employeeVO.employee_pic}" alt="Card image cap"/>
    <h5>${employeeVO.employee_position}</h5>
    <p>${employeeVO.employee_salary}</p>

</c:forEach>       

其中 ${employeeVO.employee_position} 和 ${employeeVO.employee_salary} 工作得很好,因为它们都是字符串类型
我的问题是 ${employeeVO.employee_pic} 这将返回 byte[] 我不知道如何将其转换为合法来源?
当我检查页面源代码时,它显示如下:

src="data:image/jpeg;base64,[B@59e9139b"

如果需要更多信息,请告诉我。谢谢。

【问题讨论】:

  • ${employeeVO.employee_pic} 代表什么?图片文件的完整路径?
  • 这是我从数据库中获取的完整数据(byte[] 类型)
  • 所以您没有将实际文件保存在系统任何位置的文件夹中,您只是将字节码保存在某个数据库表中?
  • 是的,所以这里 我有一个存储 javaBean(employeeVO) 的列表,我提取了employee_pic、employee_position、employee_salary

标签: jsp servlets jstl el


【解决方案1】:

你不能简单地在 html 中表示 byte[]。

您可以在编写 html 时将文件数据表示为 base64 格式。问题是您发送的不是base64 字符串,而是字节[]。

您需要以读取方式公开数据。即需要将其表示为base64字符串。

为此,您可以在employeeVO 中创建一个getter,它以base64 字符串返回文件的表示形式。举个例子

public String getEmployee_picAsBase64 (){
    ... do logic to convert file in a base64 string and return it.
}

那么,你可以用 html 来写:

<img src="data:image/jpeg;base64,${employeeVO.employee_picAsBase64}" alt="Card image cap"/>

【讨论】:

  • 谢谢,我最终想通了,解决方案与您的答案完全相同!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 2018-11-30
  • 2015-10-17
相关资源
最近更新 更多