2012-04-26 61 views
0

图像的Blob类型正在到达JSP页面,但是它的格式不可读。如何在Mysql中显示struts2中的图像blob类型Db

服务方法:

Iterator itr = list.iterator(); 
if (itr.hasNext()) { 
    Membersdetails get = (Membersdetails) itr.next(); 
    repCurrentImage = get.getRepPicture(); 
} 
return repCurrentImage; 

&我的Action类:

repCurrentImage = sdf.getrepImage(loginId); 

最后我的JSP页面:

<img src="<s:property value="repCurrentImage"/> 
+0

你如何显示图像。在表格中或者您想要在页面上呈现它。 – 2012-04-26 07:49:54

+0

在数据库中存储文件是不好的设计。我建议将'file-name'或'file-id'存储在数据库中,并仅从文件系统中选择文件。 – tusar 2012-04-26 09:32:54

+0

@tusar是怎么回事?我见过的基准测试显示边际性能差异,它避免了容器各自管理文件系统的一些平台特定问题。 – Quaternion 2012-04-26 09:50:31

回答

1

它看起来就像你正在试图嵌入的内容图像直接进入JSP ...这不会工作,你只能提供一个网址(最好的建设使用struts2 url标签,它将引用将返回流结果并采取所需参数来选择图像的操作)。

这个问题/答案则表示所使用的渲染图片这样的结果类型的动作:How to display image(bolb type) in jsp page from mySql DB in Struts 2 using Hibernate

我是我的经验,良好的DB数据类型是MEDIUMBLOB,具有更小的东西截断的形象变成了一个问题(你只会看到文件的第一部分,因为这是所有可以存储的,尽管它可能是生产中最好的,以确保该文件适合!)。

+0

+ 1为漂亮的示例链接@Quaternion先生显示它。关于我对不良设计的评论,我没有想到跨平台依赖。谢谢你的清理。其实我有这样的看法,即文件系统在存储和检索文件时总是比数据库更快。 – tusar 2012-04-26 10:15:13

+0

是的,我做到了...... – 2012-04-27 03:35:57

+0

新代码:if(itr.hasNext()) { Membersdetails get =(Membersdetails)itr.next(); repCurrentSignature = get.getRepSignature(); HttpServletResponse res = ServletActionContext.getResponse(); res.setContentType(“multipart/form-data”); ServletOutputStream out = res.getOutputStream(); out.write(repCurrentSignature); out.flush(); } – 2012-04-27 03:37:12

相关问题