spring - 通过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 请求,发现我的缺陷演示不包含请求有效负载,并且教程中的请求具有请求有效负载:
你能帮忙检查一下为什么会这样吗?非常感谢提前!!!
解决方案
推荐阅读
- gtk - 是否为使用“gtk_list_store_newv”创建的对象分配了“新”的内存
- apache-spark - 如何在启动新作业之前确定 Spark 作业是否已完成
- responsive-design - 为什么这没有响应?
- c - C - 对标准输入使用 getchar 而不是 fgets
- javascript - 连续创建背景过渡
- pandas - 时间不均匀的 Pandas groupby 通过 n 分钟的转换获得最后一个值
- python - 如何使用 gui 工具确定打开图形的图形大小?
- sql - 此 sql 从 Sybase 中的窗口运行,但是当我将其放入存储过程中时,第二次插入时出现错误
- android - react-native App可以检索其他本机应用程序的数据吗
- javascript - 如何从作为类/对象一部分的外部函数中存在的内部函数获取数据?