springbootアップロードファイルが大きすぎる500の異常解決
アプリコット.propertiesを修正します。
# 20m
spring.servlet.multipart.max-file-size=20MB
# 100M
spring.servlet.multipart.max-request-size=100MB
設定ファイルがapliaction.ymlのような構成ファイルである場合:
spring:
servlet:
multipart:
maxFileSize: 20MB
maxRequestSize: 100MB
500コード異常、起動類に追加
/**
*
*
* @return
*/
@Bean
public MultipartConfigElement multipartConfigElement() {
/*
springBoot 1.0+
MultipartConfigFactory factory = new MultipartConfigFactory();
//
factory.setMaxFileSize("20480KB"); //KB,MB
factory.setMaxFileSize("20480KB");
///
factory.setMaxRequestSize("102400KB");
return factory.createMultipartConfig();
*/
// springBoot 2.0+ ,
MultipartConfigFactory factory = new MultipartConfigFactory();
// 10M,DataUnit 5 B,KB,MB,GB,TB
factory.setMaxFileSize(DataSize.of(10, DataUnit.MEGABYTES));
/// 10M
factory.setMaxRequestSize(DataSize.of(100, DataUnit.MEGABYTES));
return factory.createMultipartConfig();
}
これは私のスタートクラスです。
package com.tythin.tyboot.rest;
import org.apache.coyote.http11.AbstractHttp11Protocol;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatConnectorCustomizer;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import com.tythin.tyboot.core.config.WebAutoConfiguration;
import javax.servlet.MultipartConfigElement;
@SpringBootApplication(exclude = { WebAutoConfiguration.class })
@EnableScheduling
@MapperScan(basePackages = "XXXX")
public class TybootRestApplication {
public static void main(String[] args) {
SpringApplication.run(TybootRestApplication.class, args);
}
@Configuration
public class CorsConfig {
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*"); // 1
corsConfiguration.addAllowedHeader("*"); // 2
corsConfiguration.addAllowedMethod("*"); // 3 (post、get )
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig()); // 4
return new CorsFilter(source);
}
/**
*
*
* @return
*/
@Bean
public MultipartConfigElement multipartConfigElement() {
/*
springBoot 1.0+
MultipartConfigFactory factory = new MultipartConfigFactory();
//
factory.setMaxFileSize("20480KB"); //KB,MB
factory.setMaxFileSize("20480KB");
///
factory.setMaxRequestSize("102400KB");
return factory.createMultipartConfig();
*/
// springBoot 2.0+ ,
MultipartConfigFactory factory = new MultipartConfigFactory();
// 10M,DataUnit 5 B,KB,MB,GB,TB
factory.setMaxFileSize(DataSize.of(10, DataUnit.MEGABYTES));
/// 10M
factory.setMaxRequestSize(DataSize.of(100, DataUnit.MEGABYTES));
return factory.createMultipartConfig();
}
}
}
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。