Java 如何从Mysql数据库在struts2中显示blob类型的图像
Blob类型的图像正在到达JSP页面,但格式不可读 服务方式:Java 如何从Mysql数据库在struts2中显示blob类型的图像,java,jsp,struts2,blob,Java,Jsp,Struts2,Blob,Blob类型的图像正在到达JSP页面,但格式不可读 服务方式: Iterator itr = list.iterator(); if (itr.hasNext()) { Membersdetails get = (Membersdetails) itr.next(); repCurrentImage = get.getRepPicture(); } return repCurrentImage; &我的行动课: repCurrentImage = sdf.getrepIma
Iterator itr = list.iterator();
if (itr.hasNext()) {
Membersdetails get = (Membersdetails) itr.next();
repCurrentImage = get.getRepPicture();
}
return repCurrentImage;
&我的行动课:
repCurrentImage = sdf.getrepImage(loginId);
最后,我的JSP页面:
<img src="<s:property value="repCurrentImage"/>
看起来您正试图将图像内容直接嵌入JSP。。。这将不起作用,您只能提供一个url(最好使用struts2 url标记构造,该标记将引用将返回流结果的操作,并采用所需参数来选择图像) 此问题/答案显示了用于渲染图片的具有以下结果类型的操作:
根据我的经验,一个好的DB数据类型是MEDIUMBLOB,任何较小的图像截断都会成为一个问题(您将只看到文件的第一部分,因为这是可以存储的全部内容,尽管这可能是生产中确保文件适合的最佳方式!)。您希望如何显示图像。或者您希望在页面上呈现它。在数据库中存储文件是一种糟糕的设计。我建议将
文件名
或文件id
存储在数据库中,并仅从文件系统中选择文件。@tusar怎么会这样?我看到的基准点显示了性能上的细微差异,它避免了一些特定于平台的问题,即每个容器如何管理文件系统。@uchena我想在表标记中显示它,使用图像标记+1作为示例链接@Quaternion sir。关于我对糟糕设计的评论,我没有想到跨平台依赖。谢谢你的清理。实际上,我认为文件系统在存储和检索文件时总是比数据库快。新代码:if(itr.hasNext()){Membersdetails get=(Membersdetails)itr.next();repCurrentSignature=get.getRepSignature();HttpServletResponse res=ServletActionContext.getResponse();res.setContentType(“多部分/表单数据”);ServletOutputStream out=res.getOutputStream();out.write(repCurrentSignature);out.flush();}