【发布时间】:2017-10-26 07:28:30
【问题描述】:
我正在使用 Thymeleaf 和 Spring boot 将图像上传到数据库。 我采取的第一步是创建上传页面和控制器方法以获取 MultipartFile(image) 作为字节数组。
这是我没有得到正确字节数组的地方。
百里香部分的代码:
<div class="col-sm-8">
<form action="#" th:action="url to the controller method" method="post" enctype="multipart/form-data">
<div class="form-group">
<div class="col-md-2">
<label for="image">Upload image</label>
</div>
<div class="col-md-8">
<input id="image" type="file" name="image"/>
</div>
</div>
<button type="submit" class="btn btn-default">Submit</button>
</form>
</div>
这是我的 Spring 启动控制器:
@RequestMapping(value = "url to the controller method", method = RequestMethod.POST)
public String createImage(@RequestParam("image") MultipartFile image) {
try {
byte[] design = image.getBytes();
System.out.println(design.toString());
} catch (IOException e) {
e.printStackTrace();
}
return "redirect:/home";
}
我的 to 字符串返回:
[B@4fe2fee8
这似乎不是正确的值,因为当我在互联网上转换同一张图像时,我会得到一长串 0 和 1 的列表。
有人知道如何解决这个问题吗?我的多部分文件似乎不包含上传的图片。
我在表单操作中的 url 似乎是正确的,因为我可以在控制器中访问我的 Post 方法。
编辑
使用 image.isEmpty() 检查我的控制器中的 MultipartFile 是不正确的。
【问题讨论】:
-
当您在数组上运行 println 时,您将打印对象而不是其内容。您是否调试并检查了数组包含的内容?
-
不要理会
toString返回的奇怪值,默认实现只是返回类似于
标签: java spring spring-mvc thymeleaf