我能够弄清楚这一点。要启用对多部分文件的支持,您必须以某种方式进行配置。令人沮丧的文档很难找到,Spring的文档对此似乎并不完整,或者仅与基于XML的配置有关。我不确定是否只是在错误的地方找东西,但是即使使用Google,我也找不到一个单独的地方来说明如何设置。无论如何,这里去。
您首先必须在您的Web配置中包括一个bean。我只是将以下内容添加到我的配置类中(扩展了
WebMvcConfigurerAdapter):
@Beanpublic MultipartResolver multipartResolver() { return new StandardServletMultipartResolver();}但这还不够。如果您正在使用Servlet 3.0,并且还使用基于Java的配置,则必须配置调度程序Servlet以支持多部分文件:
我在初始化器中添加了以下类(扩展了
WebApplicationInitializer):
dispatcher.setMultipartConfig( new MultipartConfigElement("/tmp", 25 * 1024 * 1024, 125 * 1024 * 1024, 1 * 1024 * 1024));整个方法最终看起来像这样:
@Overridepublic void onStartup(ServletContext servletContext) { AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext(); rootContext.register(ApplicationConfig.class, WebConfig.class); servletContext.addListener(new ContextLoaderListener(rootContext)); //Spring security servletContext.addFilter("springSecurityFilterChain", new DelegatingFilterProxy("springSecurityFilterChain")).addMappingForUrlPatterns(null, false, "/*"); //Enable multipart support ServletRegistration.Dynamic dispatcher = servletContext.addServlet("DispatcherServlet", new DispatcherServlet(rootContext)); dispatcher.setLoadonStartup(1); dispatcher.addMapping("/"); dispatcher.setMultipartConfig( new MultipartConfigElement("/tmp", 25 * 1024 * 1024, 125 * 1024 * 1024, 1 * 1024 * 1024) );}


