限制上传文件大小的方式
作者:互联网
限制上传文件大小的方式:
总结:tomcat配置文件server.xml设置,MultipartResolve设置,application.yml配置设置,Nginx配置,程序内部处理。
-
添加maxPortSize,如下:
<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="0"/>
注意:
只对Post请求进行拦截处理。
在tomcat7.0.63 之前 maxPostSize 设置为0 或者是 -负数都可以表示不做限制。
在tomcat7.0.63之后,maxPostSize只有设置为负数才表示不做限制。
-
MultipartResolve的配置,使用@Bean进行配置,如下:
@Bean public MultipartResolver multipartResolver(){ CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver(); multipartResolver.setMaxUploadSize(1024*1024*150); multipartResolver.setDefaultEncoding("UTF-8"); //多文件解析需要设置 multipartResolver.setResolveLazily(true); return multipartResolver; }
-
application.yml配置设置,有两种,一种直接配置springboot内置的tomcat,一种配置servlet,servlet是在resolve之前进行处理。
server: port: 8080 tomcat: max-http-form-post-size: 100MB
servlet: multipart: enabled: true max-file-size: 9MB max-request-size: 50MB
-
Nginx配置client_max_body_size,如下:
location / { proxy_pass http://fabo; proxy_redirect off; proxy_set_header Host $host:80; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 1000m; }
-
程序内部进行处理,使用MultipartFile的getSize()方法,如下:
if (m.getSize() > 10000) { //to do something }
标签:文件大小,multipartResolver,限制,max,配置,proxy,设置,上传,size 来源: https://www.cnblogs.com/gronbu1/p/15244324.html