解决spring boot上传文件MultipartFile找不到,报错的问题

如果你上传报:
The field file exceeds its maximum permitted size of 1048576 bytes.
或者报 
Required request part 'filedata' is not present


上面的报错是因为spring boot 内置的MultipartResolver大小默认设置不够,可以这样解决:

显性注册MultipartResolver:

 

[java] view plain copy

  1. // 显示声明CommonsMultipartResolver为mutipartResolver  
  2.     @Bean(name = "multipartResolver")  
  3.     public MultipartResolver multipartResolver()  
  4.     {  
  5.         CommonsMultipartResolver resolver = new CommonsMultipartResolver();  
  6.         // resolver.setDefaultEncoding("UTF-8");  
  7.         // resolver.setResolveLazily(true);// resolveLazily属性启用是为了推迟文件解析,以在在UploadAction中捕获文件大小异常  
  8.         // resolver.setMaxInMemorySize(40960);  
  9.         resolver.setMaxUploadSize(10 * 1024 * 1024);// 上传文件大小 5M 5*1024*1024  
  10.         return resolver;  
  11.     }  


并且在spring boot的启动类添加注解:

 

 

[java] view plain copy

  1. @EnableAutoConfiguration(exclude = {MultipartAutoConfiguration.class})  


这个注解的意思是排除内置的MultipartResolver。如果没有这个注解,显性注册的MultipartResolver会无效。这样处理以后就能正常上传了

或者在application.properties配置文件中添加:

#默认支持文件上传.  
spring.http.multipart.enabled=true
#支持文件写入磁盘.  
#multipart.file-size-threshold=2048
# 上传文件的临时目录  
#spring.http.multipart.location=
#指定文件大小最大值,默认1MB,设置50M
spring.http.multipart.maxFileSize=104857600
# 指定每次请求的最大值,默认为10MB 设置100M
spring.http.multipart.maxRequestSize=209715200

#spring boot 项目中,增加如下配置指定tomcat的基目录,
#否则spring boot内嵌的tomcat容器会创建一个临时目录,
#但是此目录有一个定期清除策略,会影响web容器资源的使用
server.tomcat.basedir=./deployer/tomcat

 

你可能感兴趣的:(JAVA)