您的位置:首页 > 编程语言 > Java开发

struts2通过文件流将图片文件显示在页面中

2016-12-07 12:29 435 查看
原文出处:http://blog.sina.com.cn/s/blog_9d05e9c101014dre.html

   众所周知,在我们做程序开发时,文件的上传有多种方式,其中,最常见的的两种方式是将文件直接上传到服务器的硬盘中,然后将文件的路径等相关信息插入数据库中,用户要找文件时直接通过数据库所提供的信息在服务器的硬盘里就可以找到,另外一种则是将文件直接存入数据库中。包括文件大小,文件名,文件类型和文件内容。

图片只是所有文件系统的一个分支,这一次我们就来讨论下图片文件的显示问题,当我们采用第一宗方式将图片文件上传到服务器的硬盘时,我们要调用文件并且显示出来,只需要告诉系统图片文件所在路径就可以了,通过连接服务器的图片所在路径就可以显示图片,在此就不多做介绍,我们来介绍另外一种方式显示图片文件。

首先,我们要知道一个图片文件在数据库中存储的是内容是什么,一般情况下是以字节数组形式存入到数据库中。

假设一个文件对象file,在数据库中有相关属性,其中内容是content,byte[] 类型

action中的代码如下

public String viewImages() {
HttpServletResponse response = null;
ServletOutputStream out = null;
try {
response = ServletActionContext.getResponse();
response.setContentType("multipart/form-data");
out = response.getOutputStream();
out.write(file.getContent());
out.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (Exception e) {
e.printStackTrace();
}
}
if (response != null) {
try {
response.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
return null;
}

注意,此方法必须放回null,

struts.xml的配置如下

<action name="访问action名" class="action类名" method="viewImages"></action>

jsp页面的调用代码如下

<img alt="显示图片" src="<s:url action='访问action名'><s:param name='向action传递参数名' value='参数值'></s:param></s:url>"></img>

至此,通过struts2将图片流显示在jsp页面中,同时如果直接访问这个action可以将这个文件下载到本地磁盘中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java struts 图片