Spring MVC:如果Web应用程序在Tomcat

时间:2015-06-18 04:57:59

标签: spring-mvc file-upload

我正在使用Spring MVC(4.1.3)进行我的Web项目。我有以下控制器来处理上传的文件:

@RequestMapping(value={"/avatar"}, method=RequestMethod.POST) 
public String avatarPost(HttpServletRequest request, 
        @RequestParam(value = "uid", required = true) Long uid,
        Map<String, Object> map) {

    try {
        MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
        CommonsMultipartFile file = (CommonsMultipartFile) multipartRequest.getFile("file");
        String name = file.getOriginalFilename(); //"file" is null if deployed in a war file
        .....

    } catch (IOException ex) {
        throw new RuntimeException("upload error");
    }
}

这是HTML:

<form method="post" action="/avatar?uid=1" enctype="multipart/form-data">
    <input type="file" name="file">
    <button name="submit">Save</button>
</form>

上述代码在Eclipse(Luna)和Jetty(7.x)环境中运行良好。但是,如果Web应用程序在war文件中部署到Tomcat(7.x),那么&#34;文件&#34;永远是空的。

上面我做错了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

得到了解决。我将相同的war文件部署到Tomcat 6.x上,文件上传工作正常。

必须有一些我不了解Tomcat 7.x的东西。

希望这有助于其他人。