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(); } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。