It is possible to upload multiple parts, each with a different name. For each part name, you will need one parameter annotated with @RequestPart
, whose name matches the part name.
To receive a file uploaded via an HTTP Post, you need to do the following:
@RequestMapping(
value = "...",
method = RequestMethod.POST,
consumes = MediaType.MULTIPART_FORM_DATA_VALUE
)
public Object uploadFile(
@RequestPart MultipartFile profilePicture,
@RequestPart MultipartFile companyLogo,
) {
.
.
.
}
As HTML:
<form action="/..." enctype="multipart/form-data" method="post">
<input type="file" name="profilePicture">
<input type="file" name="companyLogo">
</form>
As a raw HTTP request:
POST /... HTTP/1.1
Host: ...
Content-Type: multipart/form-data; boundary=----------287032381131322
------------287032381131322
Content-Disposition: form-data; name="profilePicture"; filename="r.gif"
Content-Type: image/gif
GIF87a.............,...........D..;
------------287032381131322
Content-Disposition: form-data; name="companyLogo"; filename="banana.jpeg"
Content-Type: image/jpeg
GIF87a.............,...........D..;
------------287032381131322--