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

Jou*_*ner 0 curl file-upload http spring-boot

我已经实现了一个控制器来上传多个文件:

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

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

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

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

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

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

Jou*_*ner 6

我使用 Array 而不是带有嵌套文件的 Set 解决了它。

爪哇:

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

卷曲:

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'
Run Code Online (Sandbox Code Playgroud)