springboot 업로드 파일 이 너무 큰 500 이상 해결

application.properties 수정

#       20m
spring.servlet.multipart.max-file-size=20MB
#      100M
spring.servlet.multipart.max-request-size=100MB
설정 파일 이 application.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();
    }
  }
}
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기