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

时间:2015-06-04 07:54:46

标签: json angularjs spring spring-restcontroller

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

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

我尝试创建一个与此结构相对应的DTO对象,但我无法弄清楚如何在客户端创建相应的JSON消息(对我而言,它是一个角度js应用程序)

1 个答案:

答案 0 :(得分:2)

您无法将文件放入JSON消息中。相反,您必须按照此问题中的说明使用内容类型multipart/form-dataHow does HTTP file upload work?

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

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

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

但是如果用户花费很长时间填写表单的其余部分,则该文件可能已准备就绪,首先。所以你也需要能够处理这种情况。