[英]How to get the max. page size of Active Directory dynamically with Java
[英]Java Spring max. size limit for upload
我试图将文件上传到控制器。
这是我的控制器的上半部分。 直到我达到+-2MB的最大请求大小为止
> @RequestMapping(value = {"/runlocalfiles"}, method =
> RequestMethod.POST, produces = "application/json")
> @ResponseBody
> @CrossOrigin(origins = "http://localhost:4200")
> public ResponseEntity run( HttpServletRequest request) {
> String jsonBase64Files = request.getParameter("base64files");
> String jsonChecks = request.getParameter("checks");
浏览器中的错误消息:
> Failed to load http://localhost:5001/runlocalfiles: No
> 'Access-Control-Allow-Origin' header is present on the requested
> resource. Origin 'http://localhost:4200' is therefore not allowed
> access. The response had HTTP status code 500.
Java控制台错误:
> java.lang.IllegalStateException: The multi-part request contained
> parameter data (excluding uploaded files) that exceeded the limit for
> maxPostSize set on the associated connector at
> org.apache.catalina.connector.Request.parseParts(Request.java:2893)
> ~[tomcat-embed-core-8.5.20.jar:8.5.20]...
我试图通过在application.properties中添加新行来增加上传大小。 还尝试将-1更改为例如100MB
> spring.servlet.multipart.max-file-size= -1
> spring.servlet.multipart.max-request-size= -1
> spring.http.multipart.max-file-size = -1
> spring.http.multipart.max-request-size= -1
任何帮助都非常宝贵。
所以我找到了一个可行的解决方案。 我需要结合两种解决方案。
将其添加到初始类中:
// Set maxPostSize of embedded tomcat server to 10 megabytes (default is 2 MB, not large enough to support file uploads > 1.5 MB)
@Bean
EmbeddedServletContainerCustomizer containerCustomizer() throws Exception {
return (ConfigurableEmbeddedServletContainer container) -> {
if (container instanceof TomcatEmbeddedServletContainerFactory) {
TomcatEmbeddedServletContainerFactory tomcat = (TomcatEmbeddedServletContainerFactory) container;
tomcat.addConnectorCustomizers(
(connector) -> {
connector.setMaxPostSize(100000000); // 100 MB
}
);
}
};
}
这是应用程序属性:
spring.http.multipart.max-file-size=100MB
spring.http.multipart.max-request-size=100MB
如果您使用的是Spring Boot并嵌入tomcat,则可以尝试以下操作:
@SpringBootApplication
public class SpringBootWebApplication {
//private int maxUploadFileSize = 10 * 1024 * 1024;
public static void main(String[] args) throws Exception {
SpringApplication.run(SpringBootWebApplication.class, args);
}
//Tomcat large file upload connection reset
@Bean
public TomcatEmbeddedServletContainerFactory tomcatEmbedded() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
tomcat.addConnectorCustomizers((TomcatConnectorCustomizer) connector -> {
if ((connector.getProtocolHandler() instanceof AbstractHttp11Protocol<?>)) {
//-1 means unlimited
((AbstractHttp11Protocol<?>) connector.getProtocolHandler()).setMaxSwallowSize(-1);
}
});
return tomcat;
}
}
我遵循了以下春季启动文件上传教程,并且如该教程中所述,以下属性对我而言非常理想:
spring.servlet.multipart.max-file-size=300MB
spring.servlet.multipart.max-request-size=300MB
spring.http.multipart.enabled=false
试试这个,它对我有用,将其添加到应用程序属性中:
server.tomcat.max-http-post-size=-1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.