因为 springboot 将很多以往需要自行搭建的服务都内嵌了
所以 springboot 也越来越受欢迎
今天代码中碰到了一个问题,就是请求长度过大,超出服务器允许范围而报错。
简要说明下我的项目功能逻辑
出现此问题是在搞上传录音功能时候碰到的,因为需要将手机通话录音上传到服务器并写入库。所以存在一个最关键问题,就是语音文件大小问题。
后台采用了断点续传方式,前台使用了判断如果大于3M,则进行分片,如果3M内则直接上传。
就是这时候碰到了500的服务器错误
"exception":"org.springframework.web.multipart.MultipartException","message":"Could not parse multipart servlet request;
错误信息
查询后发现 springboot 中 Tomcat 默认请求最大请求大小为 1MB,
所以当录音文件超过此范围则服务端无法正常解析导致报错。
解决此问题 很明显需要我们更改 Tomcat 的默认请求最大值
这里我们采用配置文件方式来修改,找到我们的根配置文件 这边使用的是application.yml 文件 添加如下代码即可:
代码:
spring:
servlet:
multipart:
enabled : true
file-size-threshold : 0
max-file-size : 100Mb
max-request-size : 100Mb
以上写法等同于:
spring.http.multipart.max-file-size=100Mb
spring.http.multipart.max-request-size=100Mb
如果不写单位,则默认单位是KB