Struts2文件下载

来源:互联网 发布:网络延迟不稳定 编辑:程序博客网 时间:2024/05/21 12:33

文件下载非常简单,直接在页面上给出一个超链接,链到指定的Servlet就可以了。用Struts2框架实现也是非常简单,下面就来实现一下:

Action类:

public class FileDownloadAction extends ActionSupport{//封装被下载资源位置信息private String inputPath;public String getInputPath() {return inputPath;}public void setInputPath(String inputPath) {this.inputPath = inputPath;}/** * 定义一个返回InputStream的方法,该方法作为被下载文件的入口, * 且需要配置stream类型结果时指定inputName参数, * inputName参数的值就是方法去掉get前缀、首字母小写的字符串 * @return * @throws Exception */public InputStream getTargetFile() throws Exception{//返回指定文件对应的输入流return ServletActionContext.getServletContext().getResourceAsStream(inputPath);}}

配置Action:

配置文件下载Action与配置普通Action没有太大的不同,关键是需要配置一个类型为stream的结果,该stream类型结果将使用文件下载作为响应。

struts.xml

<action name="download" class="cn.edu.neuq.action.FileDownloadAction"><!-- 指定被下载资源的位置 --><param name="inputPath">/WEB-INF/images/haha.jpg</param><!-- 配置结果类型为stream的结果 --><result type="stream"><!-- 指定下载文件的文件类型 --><param name="contentType">image/jpg</param><!-- 指定由getTargetFile()方法返回被下载文件的InputStream --><param name="inputName">targetFile</param><param name="contentDisposition">filename="heihei.jpg"</param><!-- 指定下载文件的缓冲大小 --><param name="bufferSize">4096</param></result></action>

完成!

0 0
原创粉丝点击