小编典典

如何使用Spring Boot上传多个文件并使用cURL对其进行测试

spring-boot

我已经实现了一个Controller来上传多个文件:

public class Image implements Serializable {
    private MultipartFile file;
    private Ingeger imageNumber;
    ...
}

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public void handleFileUpload(@RequestBody Set<Image> images) {
   ...
}

我使用以下命令直接在上载方法中仅使用 一个 MultipartFile 正确地检查了代码:

curl http://localhost:8080/upload -X POST -F 'file=@1.jpg;type=image/jpg' -H "Content-Type: multipart/form-data"

我需要以三种方式扩展它,但是不知道正确的语法:

  1. 发布JSON项目集合
  2. 为每个项目添加字段“ imageNumber”
  3. 最棘手的部分:为每个项目添加一个嵌套的文件

阅读 579

收藏
2020-05-30

共1个答案

小编典典

我使用数组而不是带有嵌套文件的Set来解决它。

Java:

@RequestMapping(value = "/upload", method = RequestMethod.POST)
public void handleFileUpload(@RequestParam MultipartFile[] images, @RequestParam Integer[] numbers) {
   ...
}

卷曲:

curl http://localhost:8080/upload -X POST \
-F 'files=@1.jpg;type=image/jpg' \
-F 'numbers=1' \
-F 'files=@2.jpg;type=image/jpg' \
-F 'numbers=2' \
-F 'files=@3.jpg;type=image/jpg' \
-F 'numbers=3'
2020-05-30