昨天我发布了这个问题..但没有得到任何答案。
在我的项目中,我将图像文件存储在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----
}
我的控制器类是: -
@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>
但是图片正在显示,如下所示: -
页面图像如下所示: [B @ 1284b24
为什么?为了实现这个形象,我必须做些什么?请各位建议我。我已编辑: -
for (ImageClass temp : imageClass) {
byte[] encodeBase64 = Base64.encode(temp.getData());
String base64Encoded = new String(encodeBase64, "UTF-8");
map.put("image",base64Encoded); }
并在jsp中: - &lt; img src="data:image/jpeg;base64,${image}" />
仍未拍照。
记录器中的我得到输出: -
答案 0 :(得分:1)
您必须转换该imageTo String,然后您可以轻松地在JSP中显示。我假设它是一个字节[]。使用@Transient变量,它将有所帮助:
dataDirectory
在jsp中,使用img标签并将String变量放在那里。请享用。