LoginSignup
6
5

More than 5 years have passed since last update.

【SpringBoot】アップロードするMultipartFileの最大サイズを変更する

Posted at

問題

2MB程度のファイルをアップロードしようとしたところ、org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field uploadFile exceeds its maximum permitted size of 1048576 bytes.というエラーが出ました。

解決方法

application.propertiesを設定する方法と、MultipartConfigJavaから設定する方法の2つを試しました。
@MultipartConfigを用いる方法は上手く出来なかったのでここでは扱いません。
調査はSpringBoot2.0.5で行いました。

application.propertiesを設定する

ドキュメントより、以下を設定すればできます。

spring.servlet.multipart.max-file-size=1MB # Max file size. Values can use the suffixes "MB" or "KB" to indicate megabytes or kilobytes, respectively.
spring.servlet.multipart.max-request-size=10MB # Max request size. Values can use the suffixes "MB" or "KB" to indicate megabytes or kilobytes, respectively.

補足

multipartプロパティは、以前は別のプロパティ配下だったようですが、2.0.0からservlet配下に移り、2.1.0でもservlet配下にあるようです。

MultipartConfigをJavaから設定する

@tera78 様の記事より、MultiPartConfigure.javaがそのまま利用できました。

MultiPartConfigure.java(引用)
import javax.servlet.MultipartConfigElement;
import org.springframework.boot.context.embedded.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MultiPartConfigure {
    @Bean
    public MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        factory.setMaxFileSize("100MB");
        factory.setMaxRequestSize("100MB");
        return factory.createMultipartConfig();
    }
}

効率的な調べ方

紹介したドキュメントのページはバージョンを変えればそのバージョンのドキュメントが見られるので、それを辿ると効率的に調べられるかなと思います。

参考にさせていただいた記事

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5