如何通过单个请求将图像和JSON对象发布到后端Spring Boot

时间:2019-02-28 14:31:15

标签: spring-boot

我想在Spring Boot中将图像和JSON数据发送到后端。 这是我的方法:

@PostMapping
    public void uploadFile(@ModelAttribute FileUploadDto fileUploadDto) {

我的FileUploadDto模型:

public class FileUploadDto {
    private MultipartFile file;
    private CategoryModel category;

我的CategoryModel模型:

@Entity
@Table(name = "Category")
@JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" })
public class CategoryModel {
    @Id
    @Column(name = "id")
    //@GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

    private String category_name;
    private String category_description;
    private String image_path;

    @JsonIgnore
    @OneToMany( mappedBy = "category")
    private Set<ProductModel> category;

我不明白我在哪里错。

我的邮递员要求: enter image description here

1 个答案:

答案 0 :(得分:1)

enter image description here

您的有效载荷必须是原始的并且为json格式。这样的事情将有助于Spring Boot将有效负载转换为示例类的对象:

public class Foo{
     public String foo;
     public String foo1;

     //Getters setters
}

以及请求处理方法:

@PostMapping
    public void uploadFile(@RequestBody Foo foo)

还建议将有效负载解析为一些临时类,然后将临时类的对象转换为Entity类,反之亦然。看看:https://struberg.wordpress.com/2012/01/08/jpa-enhancement-done-right/了解更多信息

此外,如果您要根据REST上传文件,我也建议您查看以下文档:https://www.callicoder.com/spring-boot-file-upload-download-rest-api-example/

祝你好运。