文档章节

Struts文件下载详解

志强朱
 志强朱
发布于 2016/05/08 17:47
字数 259
阅读 21
收藏 0

在做项目中上传下载肯定是少不了的,本博文对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官方文档

© 著作权归作者所有

共有 人打赏支持
志强朱
粉丝 4
博文 209
码字总数 108290
作品 0
郑州
程序员
私信 提问
struts2之constant属性详解

struts2之constant属性详解: struts.serve.static.browserCache 该属性设置浏览器是否缓存静态内容。当应用处于开发阶段时,我们希望每次请求都获得服务器的最新响应,则可设置该属性为false...

长平狐
2012/09/03
97
0
JSP、Struts2下载中文文件名乱码问题

方案一: 原来处理下载的代码如下: response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName, "UTF-8")); 下载的程序里有了这句,一般在......

长平狐
2012/11/12
464
0
关于xml文件的声明代码导致的tomcat出现的错误

在struts的配置文件中,大多数都是使用xml文件定义的,而且每个xml文件的开头都是使用特定标记来声明的。 如:<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts...

smh821025
2013/02/09
0
0
Struts 2.2.1 发布,重要的安全补丁

Struts 的上一次更新是 2008 年的 12 月,至今已有一年多了。今天 Struts 发布了 2.2.1 稳定版本,包含了很多重要的安全补丁,建议所有使用 Struts 2.2 的用户升级到该版本。 发行说明请看:...

红薯
2010/08/16
3K
6
struts-2.3.16开发环境搭建

一、拷jar包 最小jar包要求(the minimal required Struts 2 framework Jar files): struts2-core-2.3.16.jarxwork-core-2.3.16.jarcommons-logging-1.1.3.jarognl-3.0.6.jarcommons-fileu......

techsboy
2014/04/22
0
0

没有更多内容

加载失败,请刷新页面

加载更多

大数据教程(13.6)sqoop使用教程

上一章节,介绍了sqoop数据迁移工具安装以及简单导入实例的相关知识;本篇博客,博主将继续为小伙伴们分享sqoop的使用。 一、sqoop数据导入 (1)、导入关系表到HIVE ./sqoop import --connect...

em_aaron
25分钟前
0
0
Git cherry-pick 使用总结

应用背景:假设现在有两个分支:dev_01, dev_02. 如果我想把dev_01分支上的某几个commit合并到dev_02分支, 那么怎么办呢? 这就是cherry-pick的工作了。cherry-pick会捡选某些commit, 即把某...

天王盖地虎626
54分钟前
8
0
css动态设置宽高

css 中可以使用 calc() 来动态设置宽高,但是,在表达式中运算符的前后必须要有空格 height:calc(100vh - 80px)

林梓阳
今天
2
0
Git忽略提交规则 - .gitignore配置运维总结

在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交。简单来说一个场景:在你使用git add ....

二团长的迫击炮
今天
6
0
记录一次用VB合并数据,确实很好用

Sub 合并()Dim row, col, val As DoubleFor row = 1 To 710 Step 1 For col = 1 To 15 Step 1 If IsNumeric(sheet2.Cells(row, col)) And IsNumeric(Sheet3.Cells(row, ......

蓝栩液枫
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部