java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > springboot文件上传时maxPostSize设置大小失效

springboot文件上传时maxPostSize设置大小失效问题及解决

作者:DRNB666

这篇文章主要介绍了springboot文件上传时maxPostSize设置大小失效问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

springboot文件上传时maxPostSize设置大小失效

报错信息

Failed to parse multipart servlet request; nested exception is java.lang.IllegalStateException: The multi-part request contained parameter data (excluding uploaded files) that exceeded the limit for maxPostSize set on the associated connector

Caused by: java.lang.IllegalStateException: The multi-part request contained parameter data (excluding uploaded files) that exceeded the limit for maxPostSize set on the associated connector

该配置尝试无效,百度说是版本问题,核对过后发现无误

servlet:
    multipart:
      enabled: true
      max-file-size: 1000MB
      max-request-size: 1000MB

解决办法

因为我这里上传是传图片,图片以base64形式携带在请求参数中,form表单的形式提交,故怀疑可能是请求参数大小被限制了,于是添加以下配置

#注意这是server!!不是上面的servlet,别看错了。。。
server:
  tomcat:
    max-http-post-size: 100MB  #请求参数长度
    max-http-form-post-size: 100MB #form表单长度

重启解决

springboot设置文件上传大小限制

问题

SpringBoot默认上传文件大小不能超过1MB,超过之后会报以下异常:

org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.

解决方法

第一种解决方案:

增加Bean配置,注意当前类上需要加注解@Configuration,不然扫不到就不会起作用了;一般配置放在启动类中就可以。

/**  
 * 文件上传配置  
 * @return  
 */
@Bean
public MultipartConfigElement multipartConfigElement() {
    MultipartConfigFactory factory = new MultipartConfigFactory();  
    //文件最大
    factory.setMaxFileSize("10240KB"); //KB,MB
    /// 设置总上传数据总大小
    factory.setMaxRequestSize("102400KB"); 
    return factory.createMultipartConfig();  
}

第二种解决方案:

在配置文件(application.properties/application.yml)中加入如下设置即可:

# 单个文件大小(Mb和Kb都可以)
spring.servlet.multipart.maxFileSize=30MB
# 总上传的数据大小
spring.servlet.multipart.maxRequestSize=30MB

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文