如果你想将一个部分的内容转换成一个域对象(例如 aUser或Account或Address),那么过程非常简单:
可以上传多个部分,每个部分都有不同的名称。对于每个零件名称,您需要一个用 注释的参数@RequestPart,其名称与零件名称匹配。
要接收通过 HTTP Post 上传的文件,您需要执行以下操作:
@RequestMapping( value = "...", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE ) public Object uploadFile( @RequestPart Address address, ) { . . . }
作为原始 HTTP 请求:
POST /... HTTP/1.1 Host: ... Content-Type: multipart/form-data; boundary=----------287032381131322 ------------287032381131322 Content-Disposition: form-data; name="address"; filename="address.json" Content-Type: application/json {"houseNumber": "10/A", "streetName": "Dumbldore Road", "town": "Hogsmede"} ------------287032381131322--
最重要的是:
零件名称必须与变量名称匹配。
该Content-Type部分必须是一个春天将能够应付,如果你送了它作为一个普通的请求。也就是说,如果你能执行POST与一个端点Content-Type的foo/bar,和Spring能够将其转换成一个对象,那么它也将能部分进入编组的对象。
您必须能够设置Content-Type零件的 。如果不能,这种方法将不起作用 - Spring不会尝试猜测Content-Type部件的 。