[英]Spring boot file multipart accept half allowed size
我寫了一個控制器如下:
@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);
}
我在 application.porterties 配置如下:
spring.servlet.multipart.max-file-size=30MB
spring.servlet.multipart.max-request-size=30MB
但我最多可以上傳約 15MB 的文件 編輯:Spring 啟動版本:2.0.1
1.第一個潛在原因:
可能和你使用的spring-boot版本有關。
MULTIPART 屬性已根據版本更改。
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 中:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxPostSize="67589953" />
@M.Mas。 1.我使用的是spring boot 2.0.1。 2.即使我減少到8MB,也不取決於內存,同樣~4MB也是可以接受的。 3.它沒有部署在WAR文件上,我正在調試。 我上傳了一個 16.8MB 的文件,它引發了以下異常:
org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException:請求被拒絕,因為它的大小 ( 33542171 ) 超過了配置的最大值 (31457280)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.