关于上传文件的大小限制

卫诚
2023-12-01

Springboot项目关于上传文件的大小限制

1, 第一种处理方式 application.properties中添加
maxFileSize 是单个文件大小
maxRequestSize是设置总上传的数据大小
这就可以了。
根据自己需求定义吧,Mb和Kb都可以,大小写也都随意,Long字节应该可以的
另外这是MultipartConfigFactory类中的转换,可以瞅一眼

spring.http.multipart.maxFileSize=10Mb  
spring.http.multipart.maxRequestSize=10Mb  
private long parseSize(String size) {  
      Assert.hasLength(size, "Size must not be empty");  
      size = size.toUpperCase();  
      return size.endsWith("KB")?Long.valueOf(size.substring(0, size.length() - 2)).longValue() * 1024L:(size.endsWith("MB")?Long.valueOf(size.substring(0, size.length() - 2)).longValue() * 1024L * 1024L:Long.valueOf(size).longValue());  
  }  

2,第二种增加Bean配置,注意当前类上需要加注解@Configuration

	/**  
     * 文件上传配置  
     * @return  
     */  
    @Bean  
    public MultipartConfigElement multipartConfigElement() {  
        MultipartConfigFactory factory = new MultipartConfigFactory();  
        //文件最大  
        factory.setMaxFileSize("10240KB"); //KB,MB  
        /// 设置总上传数据总大小  
        factory.setMaxRequestSize("102400KB");  
        return factory.createMultipartConfig();  
    }  

一般配置就放在启动类中就好了

@Configuration  
@SpringBootApplication  
public class Application {  
    public static void main(String[] args) throws Exception {  
        SpringApplication.run(Application.class, args);  
    }  
    /**  
     * 文件上传配置  
     * @return  
     */  
    @Bean  
    public MultipartConfigElement multipartConfigElement() {  
        MultipartConfigFactory factory = new MultipartConfigFactory();  
        //文件最大  
        factory.setMaxFileSize("10240KB"); //KB,MB  
        /// 设置总上传数据总大小  
        factory.setMaxRequestSize("102400KB");  
        return factory.createMultipartConfig();  
    }  
  
}  

3,第三种,Nginx上传限制
在nginx使用过程中,上传文件的过程中,通常需要设置nginx报文大小限制。避免出现413 Request Entity Too Large。

先找到linux下的/usr/local/nginx/confnginx.conf
加上 client_max_body_size 10m; 这句话

http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
     charset utf-8;
    access_log  /var/log/nginx/access.log  main;
    client_max_body_size 10m;  #增加这个参数就可以指定最大上传文件大小为10m了;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;

然后保存,再命令行输入cd /usr/local/nginx/sbin,进入这个nginx/sbin目录,输入 ./nginx -s reload 重启nginx即可

 类似资料: