第一步:struts.xml的配置
<action name="downLoad" class="downloadAction" method="downLoad">
<!-- 配置结果类型为stream的结果 -->
<result name="success" type="stream">
<!--
指定下载文件的类型 -->
<param name="contentType">application/octet-stream;charset=ISO8859-1</param>
<!--指定被下载文件名
-->
<param name="contentDisposition">attachment;filename="${fileName}"</param>
<!--
指定下载文件的位置 -->
<param name="inputName">downloadFile</param>
</result>
</action>
第二步:实现下载的Action代码
public class DownloadActionimplements Action{
private String fileName;
public String downLoad() throws Exception{
return SUCCESS;
}
InputStream in=ServletActionContext.getServletContext().getResourceAsStream("/_upload/test.zip");
return in;
}
//该属性石依赖注入的属性,可以在配置文件中动态指定该属性
public String getFileName() {
String name = "test.zip";
String userAgent = getRequest().getHeader("User-Agent");
if(userAgent.indexOf("MSIE") > 0 || userAgent.indexOf("rv:11.0") > 0){
return new String(name.getBytes("gb2312"), "iso-8859-1");
} else {
return new String(name.getBytes("UTF-8"), "iso-8859-1");
}
}
public void setFileName(String fileName) {
this.fileName = fileName;
}
}
第三步:下载文件
<a href="downLoad.action">下载</a>
原文:http://blog.csdn.net/leeyefang/article/details/38731429