Java Spring引导文件多部分接受允许大小的一半
我编写了一个控制器,如下所示:Java Spring引导文件多部分接受允许大小的一半,java,spring-boot,tomcat,file-upload,multipartfile,Java,Spring Boot,Tomcat,File Upload,Multipartfile,我编写了一个控制器,如下所示: @PostMapping(value="/upload", produces = "application/json") @ApiOperation("Upload") @ApiIgnore public ResponseEntity<ResponseObject> fileUpload( @RequestParam(value="file") Multip
@PostMapping(value="/upload", produces = "application/json")
@ApiOperation("Upload")
@ApiIgnore
public ResponseEntity<ResponseObject> fileUpload(
@RequestParam(value="file") MultipartFile file,
@RequestParam (value="code",required=false, defaultValue="0")String code,
@RequestParam (value="approvaldetails",required=false, defaultValue="0") String approvalDeatils) throws Exception{
return uploadService.uploader(file,code,approvalDeatils);
}
但我可以上传高达15MB的文件
编辑:
Spring启动版本:2.0.1。第一个潜在原因:
可能与您正在使用的spring boot版本有关
多部分属性已根据版本进行更改
Spring Boot 1.3.x及更早版本
multipart.max-file-size
multipart.max-request-size
在Spring Boot 1.3.x之后:
spring.http.multipart.max-file-size=-1
spring.http.multipart.max-request-size=-1
在Spring Boot 2.0之后:
spring.servlet.multipart.max-file-size=-1
spring.servlet.multipart.max-request-size=-1
2。第二个潜在原因:
你的应用没有足够的内存来接收文件
3。第三个潜在原因:
如果您将打包为war并在tomcat上部署,请确保tomcat允许适合您的用例的maxPostSize
在conf\server.xml中:
@M.Mas。
1.我使用的是spring boot 2.0.1。
2.不依赖内存,即使我减少到8MB,仍然可以接受~4MB。
3.它没有部署在WAR文件上,我正在调试。
我上传了一个16.8MB的文件,它引发了以下异常:
org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceedeException:请求被拒绝,因为其大小(33542171)超过了配置的最大值(31457280)
将server.tomcat.max http post size=30MB添加到属性文件。@M.Mas。我补充说,没有改变。你确定你的文件大小小于30MB吗。从例外情况看,您的文件高于30MB?@M.Mas。是的,例如,我有一个16.8MB的文件,不允许有30MB的限制!文件类型为CSV。
spring.servlet.multipart.max-file-size=-1
spring.servlet.multipart.max-request-size=-1
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxPostSize="67589953" />