我的多部分文件在我的正面和背面之间消失

qlvxas9a  于 2021-10-10  发布在  Java
关注(0)|答案(1)|浏览(244)

我有一个使用SpringBoot的Java11应用程序。
我的请求控制器中有此请求:

@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

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

axzmvihb

axzmvihb1#

我终于发现了问题:我错过了初始化器中的配置。
就像我在这个网站上看到的https://www.dev2qa.com/spring-mvc-file-upload-unable-to-process-parts-as-no-multi-part-configuration-has-been-provided/ 我在初始值设定项中添加multipart元素

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, "/*");

   }
}

它为我解决了一切。

相关问题