code: protected HttpServletRequest processMultipart( HttpServletRequest request )
      {
          if ( ! "POST".equalsIgnoreCase( request.getMethod() ) ) return request;
  
          String contentType = request.getContentType();
          if ( contentType != null && contentType.startsWith( "multipart/form-data" ) )
          {
              PageFlowRequestWrapper pageFlowRequestWrapper = PageFlowRequestWrapper.get( request );
  
              //
              // We may have already gotten a multipart wrapper during process().  If so, use that.
              //
              MultipartRequestWrapper cachedWrapper = pageFlowRequestWrapper.getMultipartRequestWrapper();
  
              if ( cachedWrapper != null && cachedWrapper.getRequest() == request ) return cachedWrapper;
  
              try
              {
                  //
                  // First, pre-handle the multipart request.  This parses the stream and caches a single
                  // MultipartRequestHandler in the outer request, so we can create new wrappers around it at will.
                  //
                  MultipartRequestUtils.preHandleMultipartRequest( request );
              }
              catch ( ServletException e )
              {
                  LOG.error( "Could not parse multipart request.", e.getRootCause() );
                  return request;
              }
  
              MultipartRequestWrapper ret = new RehydratedMultipartRequestWrapper( request );
              pageFlowRequestWrapper.setMultipartRequestWrapper( ret );
              return ret;
          }
          else
          {
              return request;
          }
  
      }
docs: If this is a multipart request, wrap it with a special wrapper.  Otherwise, return the request unchanged.
  
  @param request The HttpServletRequest we are processing