首页 > 解决方案 > 通过HTML表单上传文件,但调试后端控制器时文件不存在

问题描述

这个问题困扰了我好几个晚上。我尝试了我能做的一切,但仍然不知道原因在哪里......

我正在编写一个基于spring boot 1.5.4, spring webmvc 4.3.9, spring security 4.2.3,jQuery 3.3.1等的简单文件上传功能(这是我的 github 仓库,如果你想看看 - https://github.com/pdsmyz1023/clndr

我的表格是:

<form method="POST" action="/event/upload" enctype="multipart/form-data">
  <!-- COMPONENT START -->
  <div class="form-group">
    <div class="input-group input-file" name="Fichier1">
      <span class="input-group-btn">
          <button class="btn btn-default btn-choose" type="button">Choose</button>
      </span>
      <input type="file" class="form-control" name="file" placeholder='Choose a file...' />
      <input type="submit" class="form-control" value="Upload" />
    </div>
  </div>
  <!-- COMPONENT END -->
</form>

我的控制器是(请忽略方法内容或方法返回,因为我现在只调试问题):

@PostMapping(value = "/upload")
public @ResponseBody
List<UploadedFile> uploadFile(MultipartHttpServletRequest request,
    HttpServletResponse response, Principal principal) throws IOException {
    try {

        Map<String, MultipartFile> fileMap = request.getFileMap();
        String userName = principal.getName();
    } catch (Exception e) {
    }
    return null;
}

我的调试截图是: 像这样

我从https://github.com/frenmanoj/dropzonejs-springmvc克隆了一个教程 并在我的本地运行,一切都很好。

我比较了文件上传 http 请求,发现我的缺陷演示不包含请求有效负载,并且教程中的请求具有请求有效负载:

从教程

从我的背叛

你能帮忙检查一下为什么会这样吗?非常感谢提前!!!

标签: springhttpspring-mvcmultipartform-data

解决方案


推荐阅读