springboot上传文件过大的500异常解决
修改appliaction.properties
#单个文件最大20m spring.servlet.multipart.max-file-size=20MB #一次请求最大100M spring.servlet.multipart.max-request-size=100MB
如果配置文件为appliaction.yml的这样配置文件:
spring: servlet: multipart: maxFileSize:20MB maxRequestSize:100MB
500代码异常,在启动类的里追加
/**
*文件上传配置
*
*@return
*/
@Bean
publicMultipartConfigElementmultipartConfigElement(){
/*
springBoot1.0+推荐这种写法
MultipartConfigFactoryfactory=newMultipartConfigFactory();
//单个文件最大
factory.setMaxFileSize("20480KB");//KB,MB
factory.setMaxFileSize("20480KB");
///设置总上传数据总大小
factory.setMaxRequestSize("102400KB");
returnfactory.createMultipartConfig();
*/
//springBoot2.0+推荐这种写法,
MultipartConfigFactoryfactory=newMultipartConfigFactory();
//文件最大10M,DataUnit提供5中类型B,KB,MB,GB,TB
factory.setMaxFileSize(DataSize.of(10,DataUnit.MEGABYTES));
///设置总上传数据总大小10M
factory.setMaxRequestSize(DataSize.of(100,DataUnit.MEGABYTES));
returnfactory.createMultipartConfig();
}
这是我的启动类:
packagecom.tythin.tyboot.rest;
importorg.apache.coyote.http11.AbstractHttp11Protocol;
importorg.mybatis.spring.annotation.MapperScan;
importorg.springframework.boot.SpringApplication;
importorg.springframework.boot.autoconfigure.SpringBootApplication;
importorg.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
importorg.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
importorg.springframework.boot.web.servlet.MultipartConfigFactory;
importorg.springframework.boot.web.servlet.server.ServletWebServerFactory;
importorg.springframework.context.annotation.Bean;
importorg.springframework.context.annotation.Configuration;
importorg.springframework.scheduling.annotation.EnableScheduling;
importorg.springframework.web.cors.CorsConfiguration;
importorg.springframework.web.cors.UrlBasedCorsConfigurationSource;
importorg.springframework.web.filter.CorsFilter;
importcom.tythin.tyboot.core.config.WebAutoConfiguration;
importjavax.servlet.MultipartConfigElement;
@SpringBootApplication(exclude={WebAutoConfiguration.class})
@EnableScheduling
@MapperScan(basePackages="XXXX")
publicclassTybootRestApplication{
publicstaticvoidmain(String[]args){
SpringApplication.run(TybootRestApplication.class,args);
}
@Configuration
publicclassCorsConfig{
privateCorsConfigurationbuildConfig(){
CorsConfigurationcorsConfiguration=newCorsConfiguration();
corsConfiguration.addAllowedOrigin("*");//1允许任何域名使用
corsConfiguration.addAllowedHeader("*");//2允许任何头
corsConfiguration.addAllowedMethod("*");//3允许任何方法(post、get等)
returncorsConfiguration;
}
@Bean
publicCorsFiltercorsFilter(){
UrlBasedCorsConfigurationSourcesource=newUrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**",buildConfig());//4
returnnewCorsFilter(source);
}
/**
*文件上传配置
*
*@return
*/
@Bean
publicMultipartConfigElementmultipartConfigElement(){
/*
springBoot1.0+推荐这种写法
MultipartConfigFactoryfactory=newMultipartConfigFactory();
//单个文件最大
factory.setMaxFileSize("20480KB");//KB,MB
factory.setMaxFileSize("20480KB");
///设置总上传数据总大小
factory.setMaxRequestSize("102400KB");
returnfactory.createMultipartConfig();
*/
//springBoot2.0+推荐这种写法,
MultipartConfigFactoryfactory=newMultipartConfigFactory();
//文件最大10M,DataUnit提供5中类型B,KB,MB,GB,TB
factory.setMaxFileSize(DataSize.of(10,DataUnit.MEGABYTES));
///设置总上传数据总大小10M
factory.setMaxRequestSize(DataSize.of(100,DataUnit.MEGABYTES));
returnfactory.createMultipartConfig();
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。