实现原理
Struts 2是通过Commons FileUpload文件上传。Commons FileUpload通过将HTTP的数据保存到临时文件夹,
然后Struts使用fileUpload拦截器将文件绑定到Action的实例中。从而我们就能够以本地文件方式的操作浏览器上传的文件。
解决方案
在开发Struts应用这前首先要为程序添加Struts支持,有两种方式添加Struts支持:用Myclipse添加方式;
或者也可以手动添加。这也是开发Struts应用程序之前必须准备的工作。在这里我说一下用Myclipse添加的
方式,在做文件上传这个例子时这也是用这种方式添加的。
(说明:我用的是Myclipse8.0版本)
给项目添加Struts支持步骤如下:
1、 à选择你的项目
2、 àMyclipse
3、 à选择Project Capalibities
4、 à选择Add Struts Capalibities…
(这样就为你的项目添加了Struts支持,是不是很简单呢)
1、创建uploadFiles.jsp页面,先将表单的提交方式设为POST,然后将enctype设为multipart/form-data
主要代码如下:
2、创建图片展示页面filesShow.jsp
主要代码如下:
3、在WebRoot下创建UploadImages文件夹用于保存上传的文件
大家应该注意到,在这个UploadFiles.java类中我写了SetUpload, SetUploadFileName,
SetUploadContentType,这几个方法。这是起什么作用呢?聪明的你应该想到了吧,
其实这几个方法是用来绑定要上传的文件的。这个这个upload就是对应uploadFiles.jsp
页面的<s:file name="upload" label="Image File1"></s:file>。
而imageFiles属性是用来在上传成功后展示用的。
5、 配置struts.xml配置文件
6、Web.xml主配置
整个项目的框架结构如下图:
总结
Struts2实现文件上传就是这么简单,只要把<s:file name="XX" />和Action的属性绑定就OK.
4、新建UploadFiles.java这个类的作用是用来将文件拷贝到UploadImages目录下