我想在 Springboot 中有一个 post 方法,它将数据发布到数据库,其中我有一个表,其中保存员工的数据,也包括简历。我想将简历作为文档,因此我在实体类上有 byte[] 。我将文档作为 Multipart/form-data 从邮递员传递,并将 requestBody 作为 JSON 数据放在原始正文部分中。但没能做到。
我从邮递员处将文档作为 Multipart/form-data 传递,并将原始正文部分中的 requestBody 作为 JSON 数据,控制器编写如下,
@PostMapping()
public ResponseEntity<EmployeeMinimalResponseDTO> postEmployee(
@RequestPart(value = "resume") MultipartFile file,
@RequestBody(required = false) EmployeeDTO employeeDTO) throws IOException {
Employee employee = Converters.getEmployeeFromEmployeeDto(employeeDTO);
employee.setResume(file.getBytes());
return this.employeeService.postEmployee(employee);
}
导致内部服务器错误,提示“当前请求不是多部分请求”。我究竟做错了什么 ?我是否必须进行任何配置才能使其正常工作?我有 [starter web、Data JPA、mysql Connector、Lombok] 依赖项。
这是我的Application.properties,
spring.servlet.multipart.enabled=true
spring.servlet.multipart.file-size-threshold=2KB
spring.servlet.multipart.max-file-size=5MB
spring.servlet.multipart.max-request-size=7MB
接下来是mysql配置。
但是,我有一个控制器可以单独检查分段上传,并且效果很好,
@PostMapping("check")
public String fileUploadCheck(@RequestPart(value = "resume",required = false) MultipartFile file) throws IOException{
Employee employee= new Employee();
employee.setResume(file.getBytes());
this.employeeService.postEmployee(employee);
return "file uploaded successfullly..";
}
高兴地返回,“文件上传成功..”我不知道为什么。谁可以帮我这个事。预先感谢:)
使用@RequestPart,这是一个例子。
save(@RequestPart(value = "file1", required = false) MultipartFile file1,
@RequestPart(value = "file2", required = false) MultipartFile file2,
@RequestPart MyDto myDto)
在你的前端
let formData = new FormData();
formData.append('file1', this.myForm.get('file1')?.value);
formData.append('MyDto', new Blob([JSON
.stringify(MyModlel)], {
type: 'application/json'
}));