如何将这个mutlipart文件上传到springboot2.4?

s3fp2yjn  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(444)

对于springboot2.3,我使用了以下kotlin代码

val mvcResultImage = this.mockMvc!!.perform(MockMvcRequestBuilders.multipart("/somepath)
        .file("files[]", imageFile.getBytes())
        .characterEncoding("UTF-8"))
        .andReturn()

在一个具有功能的控制器的集成测试中

@PostMapping(path = ["/somepath"],
    consumes = [MediaType.MULTIPART_FORM_DATA_VALUE],
    produces = [MediaType.APPLICATION_JSON_VALUE])
@ResponseBody
fun createFromBytes(@RequestParam("files[]") file: MultipartFile): ResponseEntity<Any> {
   ...
}

在2.3中,我能够在控制器函数中处理请求,而在2.4中,控制器函数会引发 org.springframework.web.multipart.support.MissingServletRequestPartException 带着信息 Required request part 'files[]' is not present 并导致http响应代码400。
我在迁移指南和此版本更改的已处理问题列表中找不到任何内容。
重命名为 file 在这两个控制器和请求没有帮助,我不记得为什么我添加了 [] 在代码中使用2.3,但我认为它是必要的工作。
我通过maven父机制使用springboot spring-boot-starter-parent:2.4.1 .

ngynwnxp

ngynwnxp1#

这是一个已知的问题,在 Spring 开机来自 Spring 。它固定在Spring Boot2.4.2。链接的问题包含一个成功测试的解决方法,以防您被2.4.1:create困住 MockMultipartFileMockMultipartFile( String name, @Nullable String originalFilename, @Nullable String contentType, @Nullable byte[] content) (产品规格) originalFilename 问题)。

相关问题