码迷,mamicode.com
首页 > Web开发 > 详细

用struts2实现文件的上传下载

时间:2017-06-22 23:02:25      阅读:287      评论:0      收藏:0      [点我收藏+]

标签:文件   成员   多个   参数   下载   规范   成功   isp   puts   

在做B/S系统时经常会有文件上传下载的需求,现就基于struts2框架实现其功能

Struts2框架默认采用Commons-fileupload组件完成文件上传功能。
? 使用Struts2框架实现文件上传功能,只需在Action中定义一个java.io.File类型
的成员并为之设立setter方法,方法名要和参数名对应。
? 客户端上传的文件, Struts2框架会自动将其保存在临时文件中,封装成
java.io.File类对象。
如果还想得到上传的文件名和文件类型,需按照如下命名规则在Action中定成员:
保存文件名的变量: paraName+ "FileName";
保存文件类型的变量: paraName+ "ContentType"(一定要遵循其命名规范)

如果使用同一个参数名上传了多个文件,则只需将Action中的成员改为泛型列表:
private List<File> paraName;
private List<String> paraNameFileName;
private List<String> paraNameContentType;

下面举例说明

 技术分享

技术分享

以上是jsp页面基本实现代码

下面来到struts.xml文件配置

 技术分享

再来到我们的FileAction页面编写upload方法

技术分享

然后再来到struts.xml文件中配置文件拦截器

 技术分享

特别注意的是在上面也写到过,就是fileUpload拦截器一定要写在defaultStack栈之前!!!

 好了,,,经过上述的步骤就能完成文件的上传了。。。。

下面我们来说一下文件的下载-------

基本思路是我们用一个列表显示文件的名称,然后点击文件名就完成下载

先编写jsp页面

技术分享

在struts.xml 文件中配置

技术分享

技术分享

然后来到fileAction中编写list方法

技术分享

这样就获取到文件名了,,,离成功就不远了。。。

然后到struts.xml中

技术分享

再次来到fileAction中编写download和getInputStream()

技术分享

这样就o了

需要特别注意的是:

在FileAction 的download方法中设置contentLength、 contentDisposition、
···contentType等属性的值,同时还需提供getInputStream()方法,该方法返回一
个输入流;
contentType为文件的MIME类型;
contentLength为文件的长度;
contentDisposition指定客户端的处理方式;
··· 配置struts.xml文件中的FileAction :
<result name="success" type="stream">
<param name="contentType">${contentType}</param>
<param name="contentLength">${contentLength}</param>
<param name="contentDisposition">${contentDisposition}</param>
</result>

 好了,,,以上就是文件上传下载的基本方法。。。

用struts2实现文件的上传下载

标签:文件   成员   多个   参数   下载   规范   成功   isp   puts   

原文地址:http://www.cnblogs.com/blogs-xz/p/7067592.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!