2

我有一个使用 Spring Boot 的 Java 11 应用程序。

我的请求控制器中有这个请求:

@RestController
public class ImportController {
     private static final Logger LOGGER = LoggerFactory.getLogger(ImportController.class);

     @PostMapping("/import")
     public ResponseEntity<List<CompareAnalysis>> importXML(@RequestParam("files") List<MultipartFile> files) {
        LOGGER.debug("issue here" + files.size());
...
     }
}

生成我的战争后,我把它放在我的 Tomcat Vanilla 9.0.45 中。

当我尝试像这样调用我的应用程序时:curl -X POST -F 'files=@toto.pdf' http://localhost:8080/import/,我的日志中总是有:

17:22:33.461 [http-nio-8080-exec-3] DEBUG my.app.controler.ImportController - issue here 0

我不知道我在哪里丢失了我的多部分文件...

4

1 回答 1

1

我终于找到了问题:我错过了初始化程序中的配置。

就像我在这个网站上看到的那样https://www.dev2qa.com/spring-mvc-file-upload-unable-to-process-parts-as-no-multi-part-configuration-has-been-provided/我添加我的初始化程序中的多部分元素

public class AppInitializer implements WebApplicationInitializer {

   @Override
   public void onStartup(ServletContext container) throws ServletException {
       ...

       MultipartConfigElement multipartConfig = new MultipartConfigElement("/tmp");
       dispatcher.setMultipartConfig(multipartConfig);

       dispatcher.setLoadOnStartup(1);

       dispatcher.addMapping("*.html");

       FilterRegistration.Dynamic multipartFilter = container.addFilter("multipartFilter", MultipartFilter.class);
       multipartFilter.addMappingForUrlPatterns(null, true, "/*");

   }
}

它为我解决了一切。

于 2021-05-27T09:46:54.197 回答