簡體   English   中英

在 spring boot 2.1.2 上更改文件上傳的大小限制

[英]Changing the size-limit for file upload on spring boot 2.1.2

我正在開發一個帶有 angular 前端和 springboot 2.1.2 后端的項目,並且已經實現了一種上傳圖像的方法。 但是,它僅在圖像小於 1MB 時才有效,更大的圖像會導致異常:

org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: 字段圖像超出其最大允許大小 1048576 字節

我已經看過這些問題: 我正在嘗試設置 maxFileSize 但它不受Spring 上傳文件大小限制

我嘗試添加

spring.servlet.multipart.max-File-Size: 30MB spring.servlet.multipart.max-Request-Size: 30MB

當那也不起作用時

spring.servlet.multipart.maxFileSize: 30MB spring.servlet.multipart.maxRequestSize: 30MB

到我的 application.yml,這兩個似乎都沒有做任何事情。

我還發現了這個: https : //www.baeldung.com/spring-maxuploadsizeexceeded

並嘗試按照該站點的第 2 點所述設置限制。

這些都沒有奏效。 任何想法我做錯了什么? 這是我的 application.yml:

logging:
  file: ./log/backend.log
  level.: WARN

banner:
  location: banner/banner.txt

server:
  context-path: /

spring:
  application:
    name: Backend
  jpa:
    hibernate:
      ddl-auto: validate
      use-new-id-generator-mappings: true
  profiles:
    active: development
  http:
    multipart:
      maxFileSize: 30MB
      maxRequestSize: 30MB

security:
  basic:
    enabled: false

management:
  info:
    git:
      mode: full

這是我的控制器:

@RestController
@RequestMapping(value = "/api/v1/image")
@Api(value = "Image")
public class ImageEndpoint {

    @Autowired
    private ImageMapper imageMapper;
    @Autowired
    private IImageService imageService;

    @RequestMapping(method = RequestMethod.POST)
    @PreAuthorize("hasRole('ADMIN')")
    @ApiOperation(value = "Upload a new image", authorizations = {@Authorization(value = "apiKey")})
    @ResponseStatus(HttpStatus.OK)
    public @ResponseHeader Long post(@RequestParam ("image") MultipartFile input){
        try {
            return imageService.save(imageMapper.dtoToEntitiy(new ImageDto(input.getBytes())));
        }catch (IOException io){
            throw new ResponseStatusException(HttpStatus.BAD_REQUEST);
        }
    }

更新:

  servlet:
    multipart:
      max-request-size: 30MB
      max-file-size: 30MB

這使它工作,我只是在添加它后重新編譯,所以更改沒有通過,我實際上只需要重建以使其工作。

您可以嘗試在屬性文件中使用以下配置嗎?

multipart.max-file-size=30MB
multipart.max-request-size=30MB

如果是 yml 配置,請添加以下設置。

spring:
 http:
  multipart:
   max-file-size: 30MB
   max-request-size: 30MB

要上傳無限長度的文件,您可以設置以下內容。

spring.http.multipart.max-file-size=-1

希望對你有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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