当前位置: 首页 > 知识库问答 >
问题:

spring.http.multipart.max大小与spring.servlet.multipart.max大小的混淆

赵志
2023-03-14

我花了好几天的时间让Spring Boot上传文件正常工作,但就像Spring一样,你不知道这个魔法是如何发挥作用的,即使多年来使用这个框架,你也必须通过谷歌搜索大量时间才能发现问题所在,并解决问题,就像你正在经历一个迷宫一样,这是一个可维护性的噩梦。

使用Spring Boot 2.2.0。M3进行文件上传,这两对设置有什么区别?哪个是正确的?

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

上面的“http”是否与Spring REST控制器方法一起使用,即像这样@GetMapping(“/文件/{文件名:.}”)@响应根据公共模型和查看您的方法(…)或者,这根本不需要,完全是一种转移注意力的做法,下面的设置完成了REST http或Servlet请求中大于默认1MB的文件的所有工作。

spring.servlet.multipart.max-file-size=-1
spring.servlet.multipart.max-request-size=-1

超过最大上载大小;嵌套异常为java。lang.IllegalStateException:组织。阿帕奇。公猫util。http。文件上载。FileUploadBase$FileSizeLimitExceededException:字段文件超出了其最大允许大小1048576字节。

共有1个答案

裴永年
2023-03-14

他们在不同的版本中更改了属性名称。

Spring护套1.3。x及更早版本

multipart.max-file-size
multipart.max-request-size

Spring罩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

最大文件大小Vs最大请求大小

Springservlet。多部分。最大文件大小=2MB

上载支持的每个文件的最大大小为2MB;

还支持MB或KB后缀;默认为1MB

spring.servlet.multipart.max-request-size=10MB 

整个请求的最大大小为10MB;

还支持MB或KB后缀

对于无限上传文件大小,似乎设置-1将使其成为无限文件大小。

更新:您不需要指定任何spring。**控制器级别的属性(某些情况下需要标头内容类型)。您可以在应用程序中设置这些属性。属性文件如下。

# MULTIPART (MultipartProperties)
spring.servlet.multipart.enabled=true # Whether to enable support of multipart uploads.
spring.servlet.multipart.file-size-threshold=0B # Threshold after which files are written to disk.
spring.servlet.multipart.location= # Intermediate location of uploaded files.
spring.servlet.multipart.max-file-size=1MB # Max file size.
spring.servlet.multipart.max-request-size=10MB # Max request size.
spring.servlet.multipart.resolve-lazily=false # Whether to resolve the multipart request lazily at the time of file or parameter access.

 类似资料:
  • 以下是我遇到问题的tableViewController的代码:

  • 当我们用来谈论核心池大小和最大池大小之间的区别到底是什么? 可以借助示例来解释吗?

  • 问题内容: 该程序一个接一个地执行数以万计的连续插入。我以前从未使用过Hibernate。我的性能变得非常慢(如果我只是手动连接并执行SQL,我的速度会提高10-12倍。根据许多hibernate教程,我的batch_size设置为50。 这是单个插入的日志-也许您可以帮助我准确了解正在发生的事情: 问题答案: 当您调用时,hibernate将生成一个INSERT SQL。该INSERT SQL将

  • https://docs.oracle.com/javase/8/docs/api/java/util/Spliterator.html SIZED特征值表示在遍历或拆分之前从估计大小()返回的值表示有限大小,在没有结构源修改的情况下,表示完整遍历将遇到的元素数量的精确计数。 SUBSIZE Character 值表示 trySplit() 生成的所有拆分器都将同时具有 SIZE 和 SUBSIZ

  • 问题内容: 该程序一个接一个地执行数以万计的连续插入。我以前从未使用过Hibernate。我的性能变得非常慢(如果我只是手动连接并执行SQL,则速度会提高10-12倍。根据许多休眠教程,我的batch_size设置为50。 这是单个插入的日志-也许您可以帮助我准确了解正在发生的事情: 问题答案: 当您调用时,hibernate将生成一个INSERT SQL。该INSERT SQL将附加在刷新期间(

  • 我需要生成用XML编写的过程的PDF。这些过程有图像。有些是折页,或11x17页面大小的图像。如何在两个8.5x11大小的页面之间创建11x17大小的页面?我已经能够使用单独的