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="downLoad.action">下载</a>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值