Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从Mysql数据库在struts2中显示blob类型的图像_Java_Jsp_Struts2_Blob - Fatal编程技术网

Java 如何从Mysql数据库在struts2中显示blob类型的图像

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

Blob类型的图像正在到达JSP页面,但格式不可读

服务方式:

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();}