spring boot 文件上传超过配置文件大小,多次进入异常处理返回,从而多次响应,导致前端拿不到错误信息
解决办法:需要配置tomcat的connector的MaxSwallowSize为-1(无限制)或者大于等于spring中单个请求的文件上传打大小,建议设置大于等于spring的配置,另外spring boot暂未提供该属性的自定义配置,需要手动创建tomcat来配置connector
@Bean
public TomcatEmbeddedServletContainerFactory tomcatEmbedded() {
TomcatEmbeddedServletContainerFactory tomcat = new
TomcatEmbeddedServletContainerFactory();
tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
// connector other settings...
// configure maxSwallowSize
if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {
// -1 means unlimited, accept bytes
((AbstractHttp11Protocol<?>)
connector.getProtocolHandler()).setMaxSwallowSize(-1);
}
});
return tomcat;
}
这样做造成了其他问题请拍砖。
参考资料:https://www.mkyong.com/spring-boot/spring-boot-configure-maxswallowsize-in-embedded-tomcat/