MultipartFile文件上传大小超过限制的问题

使用sprngMVC拦截器方式解决

  1. 在springmvc-servlet.xml文件中加入拦截器配置,如下:
<mvc:interceptors>
        <bean class="com.XXX.XXX.XXX.AuthorizationInterceptor">
            <property name="maxSize" value="1073741825" />
        </bean>
    </mvc:interceptors>

2.maxSize是允许上传的最大文件大小。代码如下

public class FileUploadInterceptor implements HandlerInterceptor {
          
   
    @Getter
    private static String fileMax;
    @Setter
    private long maxSize;
 
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
          
   
        if(ServletFileUpload.isMultipartContent(request)) {
          
   
            ServletRequestContext ctx = new ServletRequestContext(request);
            long requestSize = ctx.contentLength();
            if (requestSize > maxSize) {
          
   
                log.info("文件上传超过最大值:{}",maxSize);
                fileMax = "true";
            }else {
          
   
                fileMax = "false";
            }
        }
    }
  1. controller代码如下
@PostMapping(value = "/fileTask")
public ActionResult insertFileTask(前端传参) {
          
   
 //判断超过文件最大值,返回相应的状态码
        String fileMax = AuthorizationInterceptor.getFileMax();
        if (CharConstant.STRING_TRUE.equals(fileMax)){
          
   
            processResult(result, null, CodeConstant.FILE_SIZE_MAX);
            return result;
        }
}
经验分享 程序员 微信小程序 职场和发展