gpt4 book ai didi

java - 更改 Spring Boot 2.1.2 上文件上传的大小限制

转载 作者:行者123 更新时间:2023-12-02 05:31:38 24 4
gpt4 key购买 nike

我正在开发一个带有 Angular 前端和 springboot 2.1.2 后端的项目,并实现了一种上传图像的方法。然而,它仅在图像 < 1MB 时有效,较大的图像会导致异常:

org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field image exceeds its maximum permitted size of 1048576 byte

我已经研究过这些问题: I am trying to set maxFileSize but it is not honored Spring upload file size limit

我尝试添加

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

这是我的 Controller :

@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

希望它对您有用。

关于java - 更改 Spring Boot 2.1.2 上文件上传的大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56199595/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com