title: Postman: Required request part 'file' is not present
body: <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>