我正在使用 Thymeleaf 尝试同时上传图像和图片,但是当我尝试这样做时,它会返回我的对象中的所有其他信息,但图像本身是空的
Thymeleaf 的实现如下:
<form id="application" th:action="@{/admin/newapplication}" th:object="${application}" method="post" enctype="multipart/form-data">
<h1>Add Application</h1>
<div class="input">
<input type="text" name="applicationName" placeholder="Application Name" required>
<i class='bx bxs-user'></i>
</div>
<div class="input">
<input type="text" name="password" placeholder="Password to access application" required>
<i class='bx bxs-lock-alt' ></i>
</div>
<input type="file" name="imageFile" accept="image/x-png,image/jpeg,image/jpg"/>
<div class="input">
<select name="applicationType" id="Application Type">
<option value="admin">Navigation</option>
<option value="user">Waste Management</option>
<option value="user">Energy Consumption</option>
</select>
</div>
<button type="submit" class="btn">Register Application</button>
</form>
控制器如下所示:
@PostMapping(value = "/newapplication", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String addApplication(@ModelAttribute Application application, @RequestParam(value = "file",required = false) MultipartFile file) throws IOException {
applicationRepository.save(application);
fileService.uploadImage(file.getOriginalFilename(),file);
return "addApplication";
}
试试这个:
@PostMapping(value = "/newapplication", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String addApplication(@ModelAttribute Application application,
@RequestParam(value = "imageFile",required = false) MultipartFile file) throws IOException {
applicationRepository.save(application);
fileService.uploadImage(file.getOriginalFilename(),file);
return "addApplication";
}
注意多部分文件名称的更改:
value = "imageFile"