gpt4 book ai didi

java - Spring,Hibernate with mysql 图像显示不正确

转载 作者:行者123 更新时间:2023-11-28 23:49:17 24 4
gpt4 key购买 nike

昨天我发布了这个问题..但没有得到任何答案。

在我的项目中,我将图像文件存储在 mysql 数据库中。表格是这样的:

+-----------+---------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------+---------------------+------+-----+---------+----------------+
| upload_id | int(11) | NO | PRI | NULL | auto_increment |
| uId | int(20) unsigned | NO | MUL | NULL | |
| file_name | varchar(128) | YES | | NULL | |
| file_data | longblob | YES | | NULL | |
+-----------+---------------------+------+-----+---------+----------------+

现在我正在获取图像数据我的 dao 类是:--

  public List<ImageClass> fetchallimage(int uId) {


ImageClass imageClass= new ImageClass(uId);

String hql = "FROM ImageClass WHERE uId = :uId1 ";


Query query = (Query) sessionFactory.getCurrentSession().createQuery(hql).setParameter("uId1", imageClass.getUserId());

return query.list();


}

我的 ImageClass 是:--

    @Table(name = "imageStore")
public class ImageClass{
private long id;
private String fileName;
private byte[] data;
---getters and settrs with @Column annotations----

}

我的 Controller 类是:-

   @RequestMapping(method = RequestMethod.GET)
public String ImageFetch(Map<String, Object> map,HttpServletRequest request,
HttpSession session,HttpServletResponse response) {


int uid= (int) session.getAttribute("uId");

List<ImageClass> imageClass;

imageClass= PicService.fetchallimage(uid);


map.put("image",imageClass);
return "account";
}
}

jsp页面是:-

  <c:forEach items="${image}" var="info">
<div style="width:380px;display:block;text-align:center;">
<img src="${info.data}"
border="0" alt="Dating" style="margin:10px;padding:15px;border:10px solid #FEB4DE;background:#FECDE9;"></div>
</c:forEach>

但是显示的是图片,如下图:-

enter image description here

页面图像如下:[B@1284b24

为什么??我必须做些什么才能获得图像?请大家给我建议。

我已经编辑了:--

for (ImageClass temp : imageClass) {

byte[] encodeBase64 = Base64.encode(temp.getData());
String base64Encoded = new String(encodeBase64, "UTF-8");
map.put("image",base64Encoded); }

在 jsp 中:--<img src="data:image/jpeg;base64,${image}"/>

还没有得到图片。

在记录器中我得到输出:--

最佳答案

您必须将该图像转换为字符串,然后才能轻松地在 JSP 中显示。我假设它是一个字节[]。使用@Transient 变量,它会有所帮助:

import sun.misc.BASE64Encoder;

BASE64Encoder base64Encoder = new BASE64Encoder();
object.setTransientString("data:image/png;base64," + base64Encoder.encode(object.getByteArrayDataVariable()));

在 jsp 中,使用 img 标签并将 String 变量放在那里。享受。

关于java - Spring,Hibernate with mysql 图像显示不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32900387/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com