标签:文件 成员 多个 参数 下载 规范 成功 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>
好了,,,以上就是文件上传下载的基本方法。。。
标签:文件 成员 多个 参数 下载 规范 成功 isp puts
原文地址:http://www.cnblogs.com/blogs-xz/p/7067592.html