上传大小配置

Posted cjq.java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了上传大小配置相关的知识,希望对你有一定的参考价值。

SpringBoot文件上传大小设置问题

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
       <property name="maxUploadSize" value="104857600"/>  
       <property name="maxInMemorySize" value="4096"/>  
   </bean>

这是以前上传文件时一种比较常见的设置上传文件大小的方法,但由于spring-boot自带org.springframework.web.multipart.MultipartFile的原因,配置这个bean后会产生冲突,以至于在后台获取不到上传的文件 

解决方法:

第一种: 
在application.properties中添加:

spring.http.multipart.maxFileSize=10Mb  
spring.http.multipart.maxRequestSize=10Mb 

 

老版本的话添加:

multipart.maxFileSize=128KB
multipart.maxRequestSize=128KB

其中: 
maxFileSize 是单个文件大小 
maxRequestSize是设置总上传的数据大小 
原理-》MultipartConfigFactory类中的转换如下:

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());  
  }  

 

第二种: 
在启动类中配置@Bean,注意当前类上需要加注解@Configuration,如下:

@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();  
    }  
} 

此外:Tomcat,nginx等也会对文件上传做一定的限制,具体问题具体分析。

以上是关于上传大小配置的主要内容,如果未能解决你的问题,请参考以下文章

springboot 文件上传大小配置

springboot 文件上传大小配置

java Ftp上传创建多层文件的代码片段

php文件上传限制大小问题

php文件上传限制大小问题

SpringBoot上传文件大小限制的配置