gpt4 book ai didi

rest - postman :所需的请求部分 'file' 不存在

转载 作者:行者123 更新时间:2023-12-04 11:20:45 25 4
gpt4 key购买 nike

我想通过 postman 将图像上传到我的 Rest API。我正在使用 Spring Boot 框架。这是屏幕截图:

enter image description here

我也没有设置任何标题 正如我在其他堆栈溢出答案中发现的那样,它给出了多部分边界错误。

现在,下面是我的 Controller 代码:

package com.practice.rest.assignment1.controller;

import java.io.IOException;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import com.practice.rest.assignment1.model.Product;
import com.practice.rest.assignment1.service.CatalogueService;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;

@RestController
@RequestMapping("/CatalogueController/")
public class CatalogueController{

@Autowired
private CatalogueService catalogueService;

@RequestMapping(value = "addProduct", method = RequestMethod.POST , consumes = "multipart/form-data")
public Product addProduct(@RequestParam String productJson, @RequestParam MultipartFile file) throws JsonParseException, JsonMappingException, IOException {


Product product = new ObjectMapper().readValue(productJson, Product.class);
byte[] mediaBytes = file.getBytes();
product.setImage(mediaBytes);
return catalogueService.saveInDb(product);

}

}

现在,我正在使用一个 Product 对象,它在内部包含一个定义为 byte[] 数组的图像。我把它分别作为字符串和图像作为多部分文件。

下面是我定义的产品类属性:
    private Long pId;
private String model;
private String brand;
private byte[] image; // This is where I want the image to save
private Long price;
private String currency;
private String transmissionType;
private String fuelType;

因为,我使用的是 spring boot,这是我的主类:
package com.practice.rest.assignment1;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class App {

public static void main(String[] args) {
SpringApplication.run(App.class, args);
}

}

我得到的 postman 错误是:
{
"timestamp": 1478611635977,
"status": 400,
"error": "Bad Request",
"exception": "org.springframework.web.multipart.support.MissingServletRequestPartException",
"message": "Required request part 'file' is not present",
"path": "/CatalogueController/addProduct"
}

我哪里错了?

最佳答案

我认为问题在于您发送的 JSON 参数。在 postman 中,您不需要将开头和结尾的 "表示为字符串。
而且,如果您使用开始和结束“然后在 JSON(表示 JSON 对象的属性键和值)中,您应该使用 '(单引号)。

关于rest - postman :所需的请求部分 'file' 不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40488585/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com