使用Spring Boot JPA和db H2由Postman发布图像

时间:2018-08-16 11:34:59

标签: java spring spring-boot jpa

任何人都可以支持我吗,我正在做简单的事情,就是我试图将图像保存到邮递员上传的数据库中,我正在将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"
}

3 个答案:

答案 0 :(得分:0)

答案 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);
}