Upload do Spring 3.0 MultipartFile

Estou convertendo o aplicativo da Web Java para o Spring framework e aprecio alguns conselhos sobre os problemas que estou enfrentando com o upload do arquivo. O código original foi escrito usando org.apache.commons.fileupload.

O Spring MultipartFile envolve o org.apache.commons.fileupload ou eu posso excluir essa dependência do meu arquivo POM?

Eu vi o seguinte exemplo:

<code>@RequestMapping(value = "/form", method = RequestMethod.POST)
public String handleFormUpload(@RequestParam("file") MultipartFile file) {

    if (!file.isEmpty()) {
        byte[] bytes = file.getBytes();
        // store the bytes somewhere
       return "redirect:uploadSuccess";
    } else {
        return "redirect:uploadFailure";
    }
}
</code>

Originalmente eu tentei seguir esse exemplo, mas estava sempre recebendo um erro, pois não conseguia encontrar este param de solicitação. Então, no meu controller eu fiz o seguinte:

<code>@RequestMapping(value = "/upload", method = RequestMethod.POST)
public @ResponseBody
ExtResponse upload(HttpServletRequest request, HttpServletResponse response)
{
   // Create a JSON response object.
   ExtResponse extResponse = new ExtResponse();
   try {
       if (request instanceof MultipartHttpServletRequest)
       {
           MultipartHttpServletRequest multipartRequest =
                        (MultipartHttpServletRequest) request;
           MultipartFile file = multipartRequest.getFiles("file");
           InputStream input = file.getInputStream();
           // do the input processing
           extResponse.setSuccess(true);
        }
    } catch (Exception e) {
        extResponse.setSuccess(false);
        extResponse.setMessage(e.getMessage());
    }
    return extResponse;
}
</code>

e está funcionando. Se alguém puder me dizer por que @RequestParam não funcionou para mim, eu apreciarei. BTW eu tenho

<code>    <bean id="multipartResolver"
        class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
        <property name="maxUploadSize" value="2097152"/>
    </bean>
</code>

no meu arquivo de contexto do servlet.

questionAnswers(6)

yourAnswerToTheQuestion