SpringBoot中如何限制Multipart上传的单个文件大小
SpringBoot中如何限制Multipart上传的单个文件大小
嗨,我来帮你捋清楚这个问题!你遇到的情况大概率是配置缩进不正确导致的——Spring Boot的YAML配置对缩进要求很严格,你给出的配置没有正确嵌套,所以max-file-size的设置根本没生效,才会出现只验证总文件大小的情况。
先给你一个正确的YAML配置格式:
spring: servlet: multipart: enabled: true max-file-size: 20MB max-request-size: 20MB
这里我再明确一下这几个参数的作用,避免你混淆:
max-file-size:这就是用来限制单个上传文件的最大大小的,你设置20MB的话,任何单个文件超过这个值都会被拦截max-request-size:这个是限制整个请求的总大小(比如一次上传多个文件时,所有文件的大小总和不能超过这个值)enabled: true:确保Multipart文件上传功能是开启的
如果你的项目用的是.properties格式的配置,对应的写法是:
spring.servlet.multipart.enabled=true spring.servlet.multipart.max-file-size=20MB spring.servlet.multipart.max-request-size=20MB
要是配置改对了还是有问题,你可以检查一下有没有自定义的MultipartResolver Bean——如果有的话,它可能会覆盖默认的配置,这时候你需要在自定义Resolver里手动设置单个文件的大小限制。
举个简单的例子帮你理解:假设你一次上传两个15MB的文件,max-file-size=20MB会允许这次上传(因为每个文件都没超20MB),但如果max-request-size=20MB就会拒绝(总大小30MB超过了限制),这样你就能清晰区分两者的作用啦。
备注:内容来源于stack exchange,提问作者Queen
相关产品推荐
相关产品推荐

