用struts2实现文件的上传下载

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用struts2实现文件的上传下载相关的知识,希望对你有一定的参考价值。

在做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实现文件的上传下载的主要内容,如果未能解决你的问题,请参考以下文章

struts2实现文件的上传下载实现

struts2实现文件上传下载

struts2文件上传下载

用Java的三大框架实现文件的上传下载,求代码啊,最好是分为action,service,serv

7Struts2实现文件上传和下载

Struts2 实现文件上传和下载