struts2 文件上传

来源:互联网 发布:嘉兴java培训 编辑:程序博客网 时间:2024/06/06 07:39

文件上传原理:

Struts2并未提供自己的请求解析器,也就是Struts2不会自己去处理multipart/form-data的请求,它需要调用其他请求解析器,将HTTP请求中的表单域解析出来。但Struts2在原有的上传解析器基础上做了进一步封装,更进一步简化了文件上传。Struts2默认使用的是Jakarta的Common-FileUpload框架来上传文件,因此,要在web应用中增加两个jar文件:commons-fileupload-x.jar和commons-io-x.jar.它在原上传框架上做了进一步封装,简化了文件上传的代码实现,取消了不同上传框架上的编程差异。

如果要改成其他的文件上传框架,可以修改struts.multipart.parser常量的值为cos/pell,默认值是jakarta,并在classpath中增加相应上传的类库:例如配置成cos上传(struts.multipart.parser=cos struts.multipart.maxSize=1024指定文件的最大字节数)。

 

不管用commons-FileUpload还是用cos框架实现文件上传。都是通过将HTTP的数据保存到临时文件夹,然后Struts使用fileUpload拦截器文件绑定到Action的实例中。

 

实现步骤:

1.把struts需要的jar包导入到相应的项目的lib中

2.在web.xml文件中配置struts 的FilterDispacter

3.创建一个文件上传的action

4.添加struts.xml文件

 

5.创建一个前台jsp页面

6.部署项目,可以进行测试。

 

多文件上传:

这个只需要修改 action为

 

2.修改 struts.xml为

3.修改前台界面为

4.部署测试,ok。

注意其中:文件上传常见的一些错误信息

1、struts.messages.error.uploading 当文件不能上传的时候包这个错误

2、struts.messages.error.file.too.large 当上传的文件太大的时候报这个错误,默认的文件大小是2MB

3、struts.messages.error.content.type.not.allowed - 当上传的文件不是自定的文件类型时 默认是所有的文件类型都可以上传