我正在尝试设置 maxFileSize 但它不被接受
I am trying to set maxFileSize but it is not honored
我正在使用 JHipster 开发应用程序。我已将以下内容添加到我的应用程序-dev.yml 文件中:
spring:
profiles:
active: dev
multipart:
maxFileSize: -1
但是当我尝试上传大于 1MB 的文件时仍然出现错误:
Caused by: org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (20663006) exceeds the configured maximum (10485760)
我错过了什么?看起来这应该很简单。
更新 1
我按照 Andy 的建议将其从 spring
配置中取消嵌套,但仍然出现错误。更新的 yml 文件:
server:
port: 8080
multipart:
maxFileSize: -1
spring:
profiles:
active: dev
datasource: ...
更新 2
运行 在较新版本的 Sprint Boot 上再次遇到此问题,不得不更改为:
spring:
http:
multipart:
max-file-size: 30MB
max-request-size: 30MB
除了配置最大文件大小外,如果您有一个大于 10MB 的文件,或者您希望在同一请求中上传多个总大小超过 10MB 的文件,您可能还需要配置最大请求大小.
需要使用的确切属性取决于您使用的 Spring 引导版本 changed in 1.4:
Spring 启动 1.3.x 及更早版本
multipart.maxFileSize
multipart.maxRequestSize
Spring 启动 1.4.x 和 1.5.x
spring.http.multipart.maxFileSize
spring.http.multipart.maxRequestSize
Spring开机2.x
spring.servlet.multipart.maxFileSize
spring.servlet.multipart.maxRequestSize
如前所述here,您需要使用这些属性:
spring.http.multipart.max-file-size=128KB
spring.http.multipart.max-request-size=128KB
就像 Emilio Garcia 提到的,它必须放在 spring.http.multipart
下,而不是单独放在 multipart
下。我最近将一个项目从 Spring Boot 1.3.5 升级到 1.4.1 并且 运行 出现了 multipart.maxFileSize
不再受尊重的问题。它似乎已经改变了。
for spring-boot 2.x,文件:src/main/resources/application.yaml
spring:
servlet:
multipart:
max-file-size: -1
max-request-size: -1
Grails 3 的默认文件大小为 128000。
如果您想增加大小,请转到项目的 application.yml,因为我想将大小增加到 25 兆字节。文件大小以字节为单位设置,正如我们在上面看到的最大大小为 128000 字节。所以我必须将 25 MB 转换为字节。
25 mb * 1024 kb * 1024 b = 26.214.400 字节
现在好了
/grails-app/conf/application.yml
并正确地写下这些行
圣杯:
控制器:
上传:
最大文件大小:26214400
最大请求大小:26214400
现在清理应用程序并再次运行,它会产生奇迹。谢谢
将以下内容添加到对我有用的配置中:
ribbon:
ReadTimeout: 20000
ConnectTimeout: 20000
用于使用外部配置 CommonsMultipartResolver tomcat
定义一个 bean,bean 名称为 MultipartFilter.DEFAULT_MULTIPART_RESOLVER_BEAN_NAME
作为默认 spring 引导的默认 MultipartFilter 查找具有默认 bean 名称的解析器。
@Bean(name = MultipartFilter.DEFAULT_MULTIPART_RESOLVER_BEAN_NAME)
protected MultipartResolver getMultipartResolver() {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
multipartResolver.setMaxUploadSize(20971520);//size in bytes
multipartResolver.setMaxInMemorySize(20971520);//size in bytes
return multipartResolver;
}
我正在使用 JHipster 开发应用程序。我已将以下内容添加到我的应用程序-dev.yml 文件中:
spring:
profiles:
active: dev
multipart:
maxFileSize: -1
但是当我尝试上传大于 1MB 的文件时仍然出现错误:
Caused by: org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (20663006) exceeds the configured maximum (10485760)
我错过了什么?看起来这应该很简单。
更新 1
我按照 Andy 的建议将其从 spring
配置中取消嵌套,但仍然出现错误。更新的 yml 文件:
server:
port: 8080
multipart:
maxFileSize: -1
spring:
profiles:
active: dev
datasource: ...
更新 2
运行 在较新版本的 Sprint Boot 上再次遇到此问题,不得不更改为:
spring:
http:
multipart:
max-file-size: 30MB
max-request-size: 30MB
除了配置最大文件大小外,如果您有一个大于 10MB 的文件,或者您希望在同一请求中上传多个总大小超过 10MB 的文件,您可能还需要配置最大请求大小.
需要使用的确切属性取决于您使用的 Spring 引导版本 changed in 1.4:
Spring 启动 1.3.x 及更早版本
multipart.maxFileSize
multipart.maxRequestSize
Spring 启动 1.4.x 和 1.5.x
spring.http.multipart.maxFileSize
spring.http.multipart.maxRequestSize
Spring开机2.x
spring.servlet.multipart.maxFileSize
spring.servlet.multipart.maxRequestSize
如前所述here,您需要使用这些属性:
spring.http.multipart.max-file-size=128KB
spring.http.multipart.max-request-size=128KB
就像 Emilio Garcia 提到的,它必须放在 spring.http.multipart
下,而不是单独放在 multipart
下。我最近将一个项目从 Spring Boot 1.3.5 升级到 1.4.1 并且 运行 出现了 multipart.maxFileSize
不再受尊重的问题。它似乎已经改变了。
for spring-boot 2.x,文件:src/main/resources/application.yaml
spring:
servlet:
multipart:
max-file-size: -1
max-request-size: -1
Grails 3 的默认文件大小为 128000。
如果您想增加大小,请转到项目的 application.yml,因为我想将大小增加到 25 兆字节。文件大小以字节为单位设置,正如我们在上面看到的最大大小为 128000 字节。所以我必须将 25 MB 转换为字节。
25 mb * 1024 kb * 1024 b = 26.214.400 字节
现在好了 /grails-app/conf/application.yml
并正确地写下这些行
圣杯: 控制器: 上传: 最大文件大小:26214400 最大请求大小:26214400
现在清理应用程序并再次运行,它会产生奇迹。谢谢
将以下内容添加到对我有用的配置中:
ribbon:
ReadTimeout: 20000
ConnectTimeout: 20000
用于使用外部配置 CommonsMultipartResolver tomcat 定义一个 bean,bean 名称为 MultipartFilter.DEFAULT_MULTIPART_RESOLVER_BEAN_NAME 作为默认 spring 引导的默认 MultipartFilter 查找具有默认 bean 名称的解析器。
@Bean(name = MultipartFilter.DEFAULT_MULTIPART_RESOLVER_BEAN_NAME)
protected MultipartResolver getMultipartResolver() {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
multipartResolver.setMaxUploadSize(20971520);//size in bytes
multipartResolver.setMaxInMemorySize(20971520);//size in bytes
return multipartResolver;
}