在Struts2中实现文件上传

在Struts2中实现文件上传 

Step1:将文件上传组件的jar文件复制到项目CLASSPATH路径下

     将commons-fileupload-1.2.1.jar和commons-io-1.4.jar复制到项目的WEB-INF/lib目录下

Step2:编写文件上传页面

      在WebRoot目录下新建upload.jsp,代码如下:

   

 

注意:文件上传需要使用method="post"和enctype="multipart/form-data"类型的表单

Step3:编写处理上传请求的action

在src目录下新建com.struts2.action包,在该包下新建FileUploadAction类,从ActionSupport类继承

 

 

Step4:在struts.xml配置FileUploadAction

在src目录下新建struts.xml文件,对FileUploadAction进行配置,配置代码如下:

 

 

注意:

1.将struts.i18n.encoding属性设置为GBK,可以解决中文乱码问题。

2.在配置文件中设置保存上传文件的目录。在action映射中,可以使用<param>元素来设置Action的属性值,这由staticParams拦截器提供支持,这个拦截器已将包含在defaultStack拦截器栈中

3.FileUploadInterceptor拦截器已经在struts-default.xml文件中定义(拦截器名为fileUpload),并且已经被包含在defaultStack拦截器中,所以你不需要再单独配置对它的引用了。

Step5:编写上传成功的页面

在WebRoot目录下新建success.jsp,它用于在上传文件成功后显示上传文件的相关信息。success.jsp的代码如下:

 

 

Step6:发布并测试:

在MyEclipse中发布项目,启动Tomcat服务器,在浏览器的地址栏中输入:

http://localhost:8080/fileUpload/upload.jsp并选择一个文件上传,

效果如下:

注意:1.别忘了Web.xml文件的配置了,代码如下:

 

 

2.加入开发struts2必须的类库(本人所加)

struts2-core-2.0.11.jar

xwork-2.0.4.jar

ognl-2.6.11.jar

freemarker-2.3.8.jar

commons-logging-1.0.4.jar

 3.你在Action中对上传文件进行处理的时候,上传文件已经在服务器上了。FileUploadInterceptor拦截器在为Action准备上传文件之前,就已经调用底层的上传文件组件接受了客户端上传的文件,并将它保存到一个临时目录中,然后在为Action提供上传的各种信息。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值