Struts2极大的简化了文件上传和下载,本文将主要介绍一下Struts2文件下载的实现1、功能主要是,在下载页面点击下载后,则下载相应的文件
2、代码部分jsp页面downloadPage:<body><!--该页面主要就是一个超链接,点击进入DownloadAction,并传递三个参数:原文件的名字,文件类型,显示的下载文件名--><a href="${pageContext.request.contextPath}/download?res=example.ppt&resType=application/vnd.ms-powerpoint&resName=MyDownload">点击下载文件</a>
</body>
*************************************************************
DownloadAction:public class DownloadAction extends ActionSupport{ private String res; //下载的目标资源 private String resType; //下载的文件类型 private String resName;//下载的文件名
public String getRes() throws Exception { //对res请求参数进行处理,(中文) return new String(res.getBytes("iso-8859-1"),"utf-8"); }
public void setRes(String res) { this.res = res; }
public String getResType() { return resType; }
public void setResType(String resType) { this.resType = resType; }
public String getResName() { return resName; }
public void setResName(String resName) { this.resName = resName; }
//提供一个返回值为InputStream的get方法 public InputStream getTarget() throws IOException { //在目录下我新建了一个downloadFile文件夹,用于存放要下载的文件 return new FileInputStream(ServletActionContext.getServletContext().getRealPath("/downloadFile")+res); }
@Override public String execute() throws Exception { return SUCCESS; }}
*************************************************************
配置文件struts.xml:<action name="download" class="action.DownloadAction"> <result type="stream"> <!-- 二进制流 -->
<!-- 该参数指定二进制流的--> <param name="contentType">${resType}</param>
<!-- 指定返回InputStream的方法--> <param name="inputName">target</param>
<param name="contentDisposition">filename=${resName}</param>
<!--控制文件下载缓冲的大小--> <param name="bufferSize">4096</param> </result></action>
简要介绍一下参数的含义:1) <param name="contentDisposition">filename=${resName}</param>
contentDisposition默认是 inline(内联的), 比如说下载的文件是文本类型或者图片类型的,就直接在网页上打开,不能直接打开的才会打开下载框自己选择
2) <param name="inputName">target</param>,这个target名字要和DownloadAction.java类中的getTarget()方法名去掉get,小写首字母一致
可能对于各类文件的类型有同学并不是很清楚,这里介绍一下如何查询文件在web的类型进入自己安装的tomcat ---> conf文件 ---> 打开web.xml 里面列出了所有文件的类型
转载于:https://www.cnblogs.com/chentao-cus/p/4741944.html