zoukankan      html  css  js  c++  java
  • 文件上传时使用拦截器限制文件大小类型无效的问题

    使用注解配置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 {

    }

    }

    这样就可以拦截到了

  • 相关阅读:
    k8s 权限控制初探
    golang gRPC 入门
    gpushare-scheduler-extender 升级依赖引发关于 golang dep 工具的思考
    admission webhook 初探(编译篇)
    以 gpushare-device-plugin 为例,探究 Resource yaml 配置
    编译 gpushare-device-plugin
    浅谈 docker 挂载 GPU 原理
    CCF计算机职业资格认证考试题解
    优达学城机器学习工程师纳米学位项目介绍
    IEEEXtreme 极限编程大赛题解
  • 原文地址:https://www.cnblogs.com/liaomin416100569/p/9331477.html
Copyright © 2011-2022 走看看