Struts2可以提供中文名文件下载的支持,HTML页面代码如下:
<body>
<h1>Struts2的文件下载</h1>
<ul>
<li>
下载中文名称的文件:<a href="download.action">下载中文名称文件</a>
</li>
</ul>
</body>
Action代码如下:
package com.annlee.upload;
import java.io.InputStream;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionSupport;
public class DownloadAction extends ActionSupport {
//该属性是依赖注入的属性,可以在配置文件中动态指定该属性值
private String inputPath;
//依赖注入该属性值的set方法
public String getInputPath() {
return inputPath;
}
public void setInputPath(String inputPath) {
this.inputPath = inputPath;
}
public String execute() throws Exception{
return this.SUCCESS;
}
/**
* 下载用的action应该返回一个InputStream实例,该方法对应在result里的inputName属性值为targetFile
*/
public InputStream getTargetFile() throws Exception{
return ServletActionContext.getServletContext().getResourceAsStream(this.inputPath);
}
}
struts.xml文件中的配置如下:
<action name="download" class="com.annlee.upload.DownloadAction">
<!-- 指定被下载资源的位置 -->
<param name="inputPath">/images/struts-中.zip</param>
<!-- 配置结果类型为stream的结果 -->
<result name="success" type="stream">
<param name="contentType">application/octet-stream</param>
<paramname="inputName">inputStream</param> <param name="contentDisposition">attachment;filename="${fileName}"</param>
<param name="bufferSize">4096</param>
</result>
</action>
从上面可以看到配置该action的关键是需要配置一个类型为stream的结果,配置时要指定以下四个属性:
contentType, inputName, contentDisposition, bufferSize因为stream结果类型的逻辑视图是返回给客户端一个输入流,因此不需要指定location属性。
分享到:
相关推荐
struts2文件下载极其简单struts2文件下载极其简单struts2文件下载极其简单struts2文件下载极其简单
struts2官方文档
使用struts2实现文件下载功能,可以直接运行!
在struts2基础上实现的包括单文件、多文件的上传及下载
struts2文件下载代码demo,一看就会。
http://blog.csdn.net/johnjobs/article/details/8076832博文中附件的下载链接
JavaEE Struts2文件下载
这是一个doc文档,文档中写明了在一个下载的action类中要执行的方法,struts.xml中的配置项,这个文档在于为大家了解下载的流程,建议多写几遍;多改改其中的参数,才能明白怎么用
参考博文:http://blog.csdn.net/u011638419/article/details/41719287
本程序是Struts2文件下载程序实现的文件下载。本程序总共有两种实现方式实现文件下载。动态下载和静态下载。
struts2文件下载(实例)解析
struts2 文件下载需要的架包 commons-fileupload-1.2 commons-io-1.3.2
程序进过本人亲测,附件中含SQL,用的是MySQL数据库,实现了带进度条的多文件上传,并提供下载功能,解压后可直接导入Eclipse,希望对你有所帮助。
MVC Struts2框架搭建,Jquery Ajax异步数据交互,内涵需要的jar包及ppt讲解