1、nginx服务器的解决办法
修改nginx.conf的值就可以解决了
将以下代码粘贴到nginx.conf内
client_max_body_size 20M
可以选择在http{ }中设置:client_max_body_size 20m;
也可以选择在server{ }中设置:client_max_body_size 20m;
还可以选择在location{ }中设置:client_max_body_size 20m;
三者有区别
设置到http{}内,控制全局nginx所有请求报文大小
设置到server{}内,控制该server的所有请求报文大小
设置到location{}内,控制满足该路由规则的请求报文大小
同时记得修改php.ini内的上传限制
upload_max_filesize = 20M
尝试解决
第一种可能性:spring本身的限制,需要进行设置,如下代码1(yml文件)代码2(properties文件),代码2未尝试,因为我用的是yml文件。
代码1
spring: servlet: multipart: max-file-size: 251658240 spring.servlet.multipart.max-file-size=500MBspring.servlet.multipart.max-request-size=500MB
第二种可能性:tomcat对上传文件有限制,设置如下代码,将该属性设置为-1即可
server: max-http-form-post-size: -1
第三种可能性:查看Nginx 是否有限制请求数据大小,未用到,未测试,仅记录。client_max_body_size 500M;必须打开,放开限制

server { listen 80; #server_name localhost; client_max_body_size 500M; #charset koi8-r; #access_log logs/host.access.log main; location /test/ { proxy_pass http://127.0.0.1:8080/test/; }}
最终成功的是第一种尝试,不过给定的参数需要是负一

#文件大小 MB必须大写 # maxFileSize 是单个文件大小 # maxRequestSize是设置总上传的数据大小 spring: servlet: multipart: enabled: true max-file-size: -1 max-request-size: -1

原因如下,通过查找源码所知

翻译如下:
返回完整HTTP请求的最大大小。如果HTTP请求超出此值,则会抛出{@link SizeLimitExceededException} *。 *默认情况下,此值将从{@link FileUploadBase#getSizeMax()* FileUploadBase}对象复制,但是,用户可以通过调用{@link #setSizeMax(long)}将默认值替换为*请求特定值在这个对象上。 * <em>注意:</ em>仅在尚未初始化迭代器的情况下,才可以设置此对象的最大大小。换句话说:如果尚未调用方法{@link #hasNext()},{@ link #next()}。 * @param pSizeMax整个HTTP请求的最大大小。值-1表示“无限制”。重点是最后一句话,@param pSizeMax整个HTTP请求的最大大小。值-1表示“无限制”
但是为什么直接设置大小不起作用的原因还有待查找。