簡體   English   中英

Spring 啟動文件多部分接受允許的一半大小

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM