如何使用 Spring RestController 上传多个文件

How to upload mutiple files using Spring RestController

我有一个 Spring RestController bean,我想添加一个接收以下结构的调用:

 - File file1
 - Integer integer2
 - Map<CustomClass,File> remainingFilesmapping

我尝试创建一个对应于此结构的 DTO 对象,但我无法弄清楚如何在客户端创建相应的 JSON 消息(对我来说,它是一个 angular js申请)

您不能将文件放入 JSON 消息中。相反,您必须使用内容类型 multipart/form-data,如以下问题所述:

要使此功能与 AngularJS 一起使用,您可能需要一个模块:File Upload using AngularJS

请注意,许多现代 UI 在后台上传文件并通过 AJAX + JSON 提交表单的其余部分。这意味着您需要 Spring 中的两个不同的控制器(或至少两种方法)和一个持久性存储,您可以在其中保留任何一个,直到另一个准备就绪。

举个例子,您需要将JSON保存在某处(文件、数据库),直到文件上传完成。届时,您必须从保存文件的位置再次读取 JSON 并使用其余信息处理文件。

但如果用户需要很长时间来填写表格的其余部分,则文件可能会先准备好。所以你也需要能够处理这种情况。