文件上传时使用拦截器限制文件大小类型无效的问题

使用注解配置struts2action用于文件上传

 

@Controller()
@Namespace("/clientAccept")
public class ClientAcceptAction{

//get set方法一定要加

private File luploadDoc;
 private String luploadDocFileName;

 

// 上传资质资料
 @Action(value = "toUploadLicence", results = { @org.apache.struts2.convention.annotation.Result(name = "input", type = "dispatcher", location = "/client/fileerror.jsp") }, interceptorRefs = {
   @InterceptorRef(value = "fileUpload", params = {
     "maximumSize",
     "4194304",
     "allowedTypes",
     "image/bmp,image/PNG,image/gif,image/pjpeg,image/JPEG,image/JPG,image/jpg,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document" }),
   @InterceptorRef(value = "defaultStack") })
 // defaultStack
 public String toUploadLicence() throws Exception {

}

}

 

在使用拦截器时 默认的比如自动填充 文件上传等拦截器全部都不会初始而使用 必须显示的添加 @InterceptorRef(value = "defaultStack") 默认的拦截器

同时使用 fileUpload 的配置 覆盖文件上传的拦截器 这样不影响全局的配置 只应用到该action中

比如在struts.properties配置了文件大小为60M 而该action配置的是4M  然而运行发现该拦截器 没起到作用 不知道为何

找了多方面资料 才知道 使用注解时使用到了 ActionSupport 类中的某些东西

 

使用注解使用拦截器时必须要继承ActionSupport   才能生效 修改为:

@Controller()
@Namespace("/clientAccept")
public class ClientAcceptAction extends ActionSupport {

//get set方法一定要加

private File luploadDoc;
 private String luploadDocFileName;

 

// 上传资质资料
 @Action(value = "toUploadLicence", results = { @org.apache.struts2.convention.annotation.Result(name = "input", type = "dispatcher", location = "/client/fileerror.jsp") }, interceptorRefs = {
   @InterceptorRef(value = "fileUpload", params = {
     "maximumSize",
     "4194304",
     "allowedTypes",
     "image/bmp,image/PNG,image/gif,image/pjpeg,image/JPEG,image/JPG,image/jpg,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document" }),
   @InterceptorRef(value = "defaultStack") })
 // defaultStack
 public String toUploadLicence() throws Exception {

}

}

这样就可以拦截到了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值