Postman: Required request part 'file' is not present
<p>I wanted to upload an image to my Rest API through postman. I am using spring boot framework. Here is the screen shot: </p>

<p><a href="https://i.stack.imgur.com/3qBmA.png" rel="noreferrer"><img src="https://i.stack.imgur.com/3qBmA.png" alt="enter image description here"></a> </p>

<p>I also <strong>have not set any any headers</strong> as I found in other stack overflow answers that it gives multipart boundary error. </p>

<p>Now, below is my controller code: </p>

<pre><code>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);

    }

}
</code></pre>

<p>Now, I am taking a Product object which consists internally an image defined as byte[] array. I take this as string and image separately as Multipart file.</p>

<p>Below is my product class attributes defined :</p>

<pre><code>    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;
</code></pre>

<p>Since , I am using spring boot , here is my Main class :</p>

<pre><code>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);  
  }

}
</code></pre>

<p>The error on postman I get is :</p>

<pre><code>{
  "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"
}
</code></pre>

<p>Where am I wrong ?</p>