Struts文件下载详解

在做项目中上传下载肯定是少不了的,本博文对struts2的下载进行解释并附上部分代码

1、action类

public class FileDownLoadAction extends ActionSupport{
	private String filename;//下载文件的名称
	
	@Override
	public String execute() throws Exception {
		return SUCCESS;
	}
	//下载源
    public InputStream getInputStream() throws IOException{
    	String path =ServletActionContext.getServletContext().getRealPath(filename);//获取文件路径
    	//System.out.println("path="+path);
		File file = new File(path);
		return FileUtils.openInputStream(file);
	}
    //下载文件名称
	public String getDownloadFileName() throws Exception{
		String downloadFileName="";
		String []filenames=filename.split("/");
		//System.out.println(filenames[filenames.length-1]);
		downloadFileName=URLEncoder.encode(filenames[filenames.length-1], "UTF-8");//解决下载中文命名文件乱码问题
	    return downloadFileName;
	}
	///字段封装//
	public String getFilename() {
		return filename;
	}
	public void setFilename(String filename) {
		this.filename = filename;
	}
}

2、struts2.xml配置

<action name="download" class="com.zzuli.student.action.FileDownLoadAction">
		<!--以流的方式返回  -->
		<result name="success" type="stream">
		<!--文件流  -->
         <param name="contentType">application/octet-stream</param>
         <!--下载源  -->
         <param name="inputName">InputStream</param>
         <!--以附件方式下载  downloadFileName对应Action类getDownloadFileName() -->
         <param name="contentDisposition">attachment;filename="${downloadFileName}"</param>
         <!--缓冲流大小  -->
         <param name="bufferSize">8192</param>
         </result>

3、jsp下载链接页面

<td>
<a href="download.action?filename=${documentUrl}">点击下载</a>
</td>


具体详解请查看Struts官方文档

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值