任何人都可以支持我吗,我正在做简单的事情,就是我试图将图像保存到邮递员上传的数据库中,我正在将STS与spring boot一起使用,而jpa数据库是H2。我在纯文本上尝试从邮递员那里获取/放置/张贴/删除它的工作正常,并且在邮递员中获取图像时也可以正常工作。我在发布图片时遇到问题
模型类代码
@Entity
public class Alian
{
@Id
private int aid;
private String aname;
@Lob
private byte[] pic;
控制器类代码是。 repo是dao类对象。
@ResponseBody
@RequestMapping(path="/alian", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE )
public Alian Saving(@RequestBody Alian alian, @RequestParam("file") MultipartFile file)
{
repo.save(alian);
return alian;
}
邮递员的错误是
{
"timestamp": "2018-08-13T19:18:47.246+0000",
"status": 415,
"error": "Unsupported Media Type",
"message": "Content type 'multipart/form-data;boundary=--------------------------175574471409780768513459;charset=UTF-8' not supported",
"path": "/alian"
}
答案 0 :(得分:0)
您可以使用multipart/form-data
。
请参见https://www.getpostman.com/docs/v6/postman/sending_api_requests/requests#form-data
答案 1 :(得分:0)
确保您没有手动添加内容类型。
不需要手动添加内容类型标头。您正在覆盖Postman设置的值。只需在POST请求中选择表单数据,然后发送您的请求以查看其是否有效。
答案 2 :(得分:0)
您不能将@RequestBody与MultipartFile一起发送,甚至在您的情况下也不需要它。仅发送MultiPartFile。
public Alian Saving(@RequestParam("file") MultipartFile file) {
Alian alian = new Alian();
alian.setPic(file.getBytes());
alian.setAname(file.getOriginalFilename());
return repo.save(alian);
}