首页 > 代码库 > struts2文件下载

struts2文件下载

第一步: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;

}

//下载用的Action应该返回一个InputStream实例
 //该方法对应在result里的inputName属性值为downloadFile
public InputStream getDownloadFile() throws Exception {

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=http://www.mamicode.com/"downLoad.action">下载