MultipartFile文件上传大小超过限制的问题
使用sprngMVC拦截器方式解决
- 在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";
}
}
}
- 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;
}
}
