【问题标题】:Spring MVC: uploaded file is null if the web app is deployed as a war file in TomcatSpring MVC:如果 Web 应用程序在 Tomcat 中部署为 war 文件,则上传的文件为空
【发布时间】:2015-06-19 11:26:33
【问题描述】:

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

@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) plus Jetty (7.x) 环境中运行良好。但是,如果 Web 应用程序部署在 Tomcat (7.x) 的 war 文件中,则“文件”始终为空。

上面我做错了吗?

谢谢!

【问题讨论】:

  • 请用您的整个方法和您提交的表单的标记更新您的问题。

标签: spring-mvc file-upload


【解决方案1】:

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

关于 Tomcat 7.x 一定有一些我不知道的地方。

希望这对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 2015-09-03
    • 2019-07-07
    • 1970-01-01
    • 2018-03-24
    • 2010-09-13
    • 2012-07-29
    • 2015-08-25
    • 2011-01-14
    • 2018-12-08
    相关资源
    最近更新 更多