code: public void bind(ServletRequest request) {
          MutablePropertyValues mpvs = new MutablePropertyValues(WebUtils.getParametersStartingWith(
                  request, prefix));
          MultipartRequest multipartRequest = WebUtils.getNativeRequest(request, MultipartRequest.class);
          if (multipartRequest != null) {
              bindMultipart(multipartRequest.getMultiFileMap(), mpvs);
          }
          addBindValues(mpvs, request);
          doBind(mpvs);
      }
docs: Bind the parameters of the given request to this binder's target,
  also binding multipart files in case of a multipart request.
  <p>
  This call can create field errors, representing basic binding errors
  like a required field (code "required"), or type mismatch between
  value and bean property (code "typeMismatch").
  <p>
  Multipart files are bound via their parameter name, just like normal
  HTTP parameters: i.e. "uploadedFile" to an "uploadedFile" bean
  property, invoking a "setUploadedFile" setter method.
  <p>
  The type of the target property for a multipart file can be
  MultipartFile, byte[], or String. The latter two receive the
  contents of the uploaded file; all metadata like original file name,
  content type, etc are lost in those cases.
  
  @param request request with parameters to bind (can be multipart)
  @see org.springframework.web.multipart.MultipartHttpServletRequest
  @see org.springframework.web.multipart.MultipartFile
  @see #bindMultipartFiles
  @see #bind(org.springframework.beans.PropertyValues)