struts2 文件上传

文件上传原理:

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 - 当上传的文件不是自定的文件类型时 默认是所有的文件类型都可以上传

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值