我们的项目框架是spring boot,容器是tomcat,代理是nginx
文件上传时如果报类似跨域问题的错误提示时,如果小点的图片能够上传说明不是跨域问题,这时候需要思考为什么大的图片无法上传
我今天就踩了这个坑,并且已经解决
首先配置springboot的multipart参数
在properties
multipart.maxFileSize=10MB
multipart.maxRequestSize=15MB
或
@Bean
public MultipartProperties multipartProperties(){
MultipartProperties multipartProperties = new MultipartProperties();
multipartProperties.setMaxFileSize("10Mb");
multipartProperties.setMaxRequestSize("15Mb");
return multipartProperties;
}
记住配置所在的类上加上@Configuration便于扫描
上面的 multipart.*在不同 的springboot版本中可能不一样,你可以通过进入 MultipartProperties 看
@ConfigurationProperties(
prefix = "multipart",
ignoreUnknownFields = false
)
这里的prefix就是你的配置依据
如果以上配置没有解决你的问题,那么说明请求的上层还有限制,上一层是tomcat
我们只需要在tomcat的server.xml中加入如下属性就可以自己限制上传的postdata的size(maxRequestSize)
<Connector port="8081"
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
enableLookups="false" redirectPort="8443" acceptCount="100"
debug="0" connectionTimeout="20000"
disableUploadTimeout="true" URIEncoding="utf-8"
maxPostSize="20971520"/>
如果以上还没有解决问题,那只能在最上层代理层nginx哪里配置了
可以选择在http{ }中设置:client_max_body_size 20m;
也可以选择在server{ }中设置:client_max_body_size 20m;
还可以选择在location{ }中设置:client_max_body_size 20m;
如果还没解决,那就是还有没考虑到的地方了,可以共同探讨下哈。。。