Struts文件下载具体解释

Posted cxchanpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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官方文档






以上是关于Struts文件下载具体解释的主要内容,如果未能解决你的问题,请参考以下文章

Struts(21)OGNL具体解释

SSH 基础SSH框架--struts深入具体解释

Spring+mybatis+struts框架整合的配置具体解释

有人可以解释以下 R 代码片段吗? [关闭]

struts_01

20160206.CCPP体系具体解释(0016天)