java - MultipartFile 不在 "@RequestParam Map<String, Object> requestParams"变量中

标签 java spring spring-mvc

所以我目前正在使用 Spring 构建一个 Multipart-Fileupload。我想创建尽可能通用的 Controller ,以便为我自己的模块化 Controller 应用程序提供良好的开端。这就是我使用 @RequestParam Map<String, Object> requestParams 的原因.所以我的虚拟函数看起来像这样:

@RequestMapping(path = "uploadtest", method = POST, consumes = MULTIPART_FORM_DATA_VALUE)
    public String test(@RequestParam("file") MultipartFile file,
                       @RequestParam Map<String, Object> requestParams) {
        return "/[...]";
    }

现在,当我发布一个文件时,我会假设它可以通过 file 获得。 -变量(工作,好的。)并通过 requestParams.get("file") (不起作用)。

所以这是我的问题:

这个意图是这样工作的,还是没有为通用 @RequestParams 启用多部分支持?注释(=Bug/Feature?)。

最佳答案

我创建了一个很棒的解决方案来获取文件映射作为 Map fileMap。 您应该使用:multiRequest.getFileMap(); 来自对象 HttpServletRequest。

    @PostMapping(consumes = {MULTIPART_FORM_DATA_VALUE})
    ResponseEntity<String> createDocument(@RequestParam Map<String, String> allParams, HttpServletRequest request)

Map<String, MultipartFile> fileMap = new HashMap<String, MultipartFile>();
if (request instanceof MultipartHttpServletRequest) {
    MultipartHttpServletRequest multiRequest = (MultipartHttpServletRequest) request;
    fileMap = multiRequest.getFileMap();
}

关于java - MultipartFile 不在 "@RequestParam Map<String, Object> requestParams"变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37720399/

相关文章:

java - 使用组合键映射/访问实体

java - 在 java 中访问已经引用的 bean Spring mvc 中的 bean 时出现空指针异常

java - 与四郎一起度过 Spring

java - 无法从 object 转换为int

java - 我为 Rubymine 创建的插件不兼容

java - 在 Bean Validation 中使用组的想法是什么

java - 使用 Spring Data,Mongodb,如何避免重复顶点错误

java - Tomcat websocket 回显应用程序

database - 使用 Spring 3 和 Hibernate 3 的身份验证(基于注释)

spring-mvc - 使用spring MVC中的一组项目处理表单发布