To get MultipartFile in spring we either use @RequestPart or @RequestParam. These annotations are used to associate the part of a multipart/form-data request.This is written in spring docs:
public @interface RequestPart
Annotation that can be used to associate the part of a
"multipart/form-data" request with a method argument. Supported method
argument types include MultipartFile in conjunction with Spring's
MultipartResolver abstraction, javax.servlet.http.Part in conjunction
with Servlet 3.0 multipart requests, or otherwise for any other method
argument, the content of the part is passed through an
HttpMessageConverter taking into consideration the 'Content-Type'
header of the request part. This is analogous to what @RequestBody
does to resolve an argument based on the content of a non-multipart
regular request.
Note that @RequestParam annotation can also be used to associate the
part of a "multipart/form-data" request with a method argument
supporting the same method argument types.
The main difference is that when the method argument is not a String,
@RequestParam relies on type conversion via a registered Converter or
PropertyEditor while @RequestPart relies on HttpMessageConverters
taking into consideration the 'Content-Type' header of the request
part. @RequestParam is likely to be used with name-value form fields
while @RequestPart is likely to be used with parts containing more
complex content (e.g. JSON, XML).
link:https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestPart.html