我有一个Spring RestController bean,我想添加一个收到以下结构的调用:
- File file1
- Integer integer2
- Map<CustomClass,File> remainingFilesmapping
我尝试创建一个与此结构相对应的DTO对象,但我无法弄清楚如何在客户端创建相应的JSON消息(对我而言,它是一个角度js应用程序)
答案 0 :(得分:2)
您无法将文件放入JSON消息中。相反,您必须按照此问题中的说明使用内容类型multipart/form-data
:How does HTTP file upload work?
要使用AngularJS,您可能需要一个模块:File Upload using AngularJS
请注意,许多现代UI在后台上传文件,并通过AJAX + JSON提交表单的其余部分。这意味着你需要Spring中的两个不同的控制器(或至少两个方法)和一个持久性存储,你可以保留其中任何一个,直到另一个准备就绪。
举个例子,你需要在某个地方(文件,数据库)保存JSON,直到文件上传完成。那时,您必须再次从保存位置读取JSON,并使用其余信息处理文件。
但是如果用户花费很长时间填写表单的其余部分,则该文件可能已准备就绪,首先。所以你也需要能够处理这种情况。