Struts2中的文件上传

完整版见https://jadyer.github.io/




以下是在Struts2中上传文件时用到的UploadAction的配置信息

fileUpload拦截器对应的FileUploadInterceptor类中提供了两个属性
分别是protected Long maximumSize属性和protected String allowedTypes属性
maximumSize属性用来设定上传的单个文件的最大体积,单位是字节,所以512000即500KB
                            这里maximumSize指的不是客户端上传的所有文件的总和,它指的是单个的文件
allowedTypes属性用来指定上传文件的类型,我们可以在Tomcat6.0.20//conf//web.xml文件中查看MIME Type Mappings
                            也可随意定义文件类型,再正常上传文件,然后看报错信息,同样可以获得所上传文件的正确的类型映射


两个fileUpload拦截器的冲突问题
在Struts2中上传文件时,除了在<action/>中配置<interceptor-ref name="fileUpload">
还要显式的指定默认的defaultStack拦截器,即<interceptor-ref name="defaultStack"/>
但在defaultStack中已有了一个fileUpload,这是就相当于引用了两个fileUpload拦截器
那么在实际运行的过程中,就有可能会出现一些莫名的冲突问题,这时有两种解决办法
第一种是将defaultStack里的拦截器全部拷到这里,然后在fileUpload拦截器中修改那两个属性
这时就会在<action/>充斥了许多的一大片拦截器,影响美观,不太实用
所以就可以采用第二种.】的方式,代码如下

所以在解决重复引用拦截器后引起冲突问题的时候
更推荐使用第二种方法修改某个拦截器的单一属性


废话少说,直接上代码

首先是web.xml文件

然后是用于选择文件进行上传的upload.jsp页面

然后是用于显示文件上传结果的result.jsp页面

然后是Struts2的配置文件struts.xml

最后是用来处理文件上传的核心操作的UploadAction.java

补充:需要在Web Project的WebRoot目录下新建一个upload目录

补充:这是用来保存上传的文件的,Web Project发布后,该upload目录会一并发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值