struts2基于注解的文件下载
2015-11-16 13:54
465 查看
参数说明:
type = "stream",这里的type一定要等于stream;
对params的几个参数的解释:
"contentType", "application/octet-stream" : 文件格式;
"inputName", "attachstream" :获取文件的方法名;这里的attachstream需要和action里的attachstream对应,类型就是InputStream;
"contentDisposition", "attachment;filename=\"${attachname}\"":文件内容(显示的)属性,
这里的filename=\"${attachname}\" :下载之后的文件名;这里需要在action里定义一个变量,去获取下载文件的文件名,包括后缀,例如:下载的文件为**/**/upload/test.jpg,那么需要定义一个变量attachname,变量名一定要对应,然后,attachname = test.jsp;
"bufferSize", "4096" :限定下载文件 缓冲区的值;
通过上述属性的解释,我们可以知道,在action里需要定义的变量有以下几个:
private InputStream attachstream;//文件读取流对象
private String attachname;//下载文件的名字
然后需要对应的getter/setter方法,
action实现代码如下:
type = "stream",这里的type一定要等于stream;
对params的几个参数的解释:
"contentType", "application/octet-stream" : 文件格式;
"inputName", "attachstream" :获取文件的方法名;这里的attachstream需要和action里的attachstream对应,类型就是InputStream;
"contentDisposition", "attachment;filename=\"${attachname}\"":文件内容(显示的)属性,
这里的filename=\"${attachname}\" :下载之后的文件名;这里需要在action里定义一个变量,去获取下载文件的文件名,包括后缀,例如:下载的文件为**/**/upload/test.jpg,那么需要定义一个变量attachname,变量名一定要对应,然后,attachname = test.jsp;
"bufferSize", "4096" :限定下载文件 缓冲区的值;
通过上述属性的解释,我们可以知道,在action里需要定义的变量有以下几个:
private InputStream attachstream;//文件读取流对象
private String attachname;//下载文件的名字
然后需要对应的getter/setter方法,
action实现代码如下:
@Action(value = "/admin/toDownload", results = {@Result(name = "download", type = "stream", params = { "contentType", "application/octet-stream", "inputName", "attachstream", "contentDisposition", "attachment;filename=\"${attachname}\"", "bufferSize", "4096" })}) public String toDownload(){ String path = ServletActionContext.getServletContext().getRealPath("/" + fileName);//fileName是页面传过来的参数 try { attachstream = new FileInputStream(path); String []attachnames = fileName.split("/"); attachname = attachnames[attachnames.length - 1]; } catch (FileNotFoundException e) { e.printStackTrace(); } return "download"; }
相关文章推荐
- JAVA 初始化顺序
- 精选30道Java笔试题解答
- Java使用JAX-WS来写webservice时 Unable to create JAXBContext
- Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)
- Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)
- Java Web学习总结(23)——Distributed Configuration Management Platform(分布式配置管理平台)
- spring maven 记录
- 详解java类的生命周期
- Java泛型
- MyEclipse在保存时总是building workspace,反应很慢(粘贴学习,以备后用)
- 修改deploy location
- 0601 生成验证码
- eclipse常用快捷键
- myeclipse+maven打包项目源代码
- Java 堆内存
- 使用Netbeans创建java Web项目
- Java内存
- java 集合相关类整理
- 《Thinking In Java》学习笔记:第5章 初始化与清理
- eclipse导出jar包完美解决方案