如何在控制器中具有@RequestPart批注的邮递员中发送发送json和多部分文件

时间:2019-01-20 16:53:18

标签: spring-boot spring-mvc postman multipartform-data multipart

我开发了一个将输入Json和Multipart文件作为输入的代码。但是,当我尝试用邮递员调用此API时,出现以下错误:

  

不存在所需的请求部分“输入””

这是我的控制人:

@RequestMapping(value={"/saveThumbnail"}, method={RequestMethod.POST},  
            consumes={"multipart/form-data"}, headers={"Accept=application/json"}) 
    public ImageConversionOutput convertImageIntoThumbnail(@RequestPart ImageConversionInput input, @RequestPart(value = "file") MultipartFile file)
    {
        ImageConversionService service = new ImageConversionService();
        System.out.println(input);
        ImageConversionOutput  output = null;
        try {
             output = service.convertImageToThumbnail(input, file, imageRepository);
            }
        catch(Exception e)
        {
            e.printStackTrace();
        }
        return output;

    }

我的邮递员要求如下:

Request Headers

Request parameters

我遇到以下错误:

enter image description here

1 个答案:

答案 0 :(得分:0)

您的{"fileName": "test7", "fileType": "png", "barCodeFlag":"F"}参数是否为json格式?
尝试//file: request.js var form = new FormData(); // user is a json string, not an object. form.append('user', JSON.stringify({name: 'John', age: 18})); // append the file form.append('file', file));


https://golang.org/pkg/strings#LastIndexByte

而RequestPart可能会与包含更复杂内容的部分一起使用,例如JSON,XML)。

请求

@PostMapping("/saveUser")
public User saveUser(
    @RequestPart(value = "user") UserProfile user, 
    @RequestPart(value = "file") MultipartFile file)
{
    // code..
}

控制器

()