Spring Boot上文文件过大处理

 前端页面表单输入数据较多,包含多个文本、多张图片,在数据未压缩的情况下,最终上传失败

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

原因:请求数据量过大,超出了最大阈值。

解决:

server:  
  tomcat:
    max-http-post-size: -1
spring:
  servlet:
    multipart:
      max-file-size: 30Mb
      max-request-size: 100Mb

解决了应用服务器请求数据量过大问题后,在下一步写入DB时又遇到了类似问题,超出了数据库中最大允许数据包默认配置值。

报错:Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is too large (16800061 > 16777216). You can change this value on the server by setting the max_allowed_packet’ variable.
原因:超出了数据库中最大允许数据包默认配置值

解决:修改DB的max_allowed_packet值:

USE demo;
set global max_allowed_packet = 3*1024*1024*10; # 改为30M
show VARIABLES like '%max_allowed_packet%'; # 重启DB连接生效

注意:MySQLmax_allowed_packet 的 默认配置:16777216 = 16 * 1024 * 1024,即16M

参考:https://blog.csdn.net/u013810234/article/details/81136416

你可能感兴趣的:(Spring Boot上文文件过大处理)