其他分享
首页 > 其他分享> > 限制上传文件大小的方式

限制上传文件大小的方式

作者:互联网

限制上传文件大小的方式:

总结:tomcat配置文件server.xml设置,MultipartResolve设置,application.yml配置设置,Nginx配置,程序内部处理。

  1. 添加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只有设置为负数才表示不做限制。

  2. MultipartResolve的配置,使用@Bean进行配置,如下:

        @Bean
        public MultipartResolver multipartResolver(){
            CommonsMultipartResolver multipartResolver=new CommonsMultipartResolver();
            multipartResolver.setMaxUploadSize(1024*1024*150);
            multipartResolver.setDefaultEncoding("UTF-8");
            //多文件解析需要设置
            multipartResolver.setResolveLazily(true);
            return multipartResolver;
        }
    
  3. 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
    
  4. 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;
    
    }
    
  5. 程序内部进行处理,使用MultipartFile的getSize()方法,如下:

    if (m.getSize() > 10000) {
        //to do something            
    }
    

标签:文件大小,multipartResolver,限制,max,配置,proxy,设置,上传,size
来源: https://www.cnblogs.com/gronbu1/p/15244324.html