D.Asare
D.Asare

Reputation: 103

MultipartFile array not sending to spring controller

I send a post request to my spring controller using JS, but am not able to receive a multipartFile array all i get is null. I send 3 separate parameters which are shown below. (artwork,tracks and metadata)

    formData.append("artwork", $scope.image[0]);
    formData.append("tracks", $scope.files);
    formData.append("metadata",JSON.stringify(contentData));


    // $http.post('/review/' + $scope.objectID, formData).then("Successfully got objects !", "Successfully got objects !");
    $http({
    url: '/review/'+ $scope.objectID,
    method: 'POST',
    headers: {'Accept': 'application/json', 'Content-Type': undefined},
    data: formData,
    transformRequest: function (data, headersGetterFunction) {
      return data;
    }
  }).

I do receive metadata ( which is a String) and artwork (which is a single MultiPartFile) from the parameters but null for tracks (Array MultiPartFile).

Here my Controller

    @RequestMapping(value = "/review/{id}", method = RequestMethod.POST, produces = "application/json")
@ResponseStatus(value=HttpStatus.OK)
public void formHandler(
    @PathVariable("id") String id,
    @RequestPart("artwork") MultipartFile artwork,
    @RequestPart("tracks") MultipartFile[] tracks, 
    @RequestPart("metadata") String object) {


   // SubmissionsRequestObject subObject = getSubObject(object, artwork, tracks);
   // System.out.println(subObject.getAlbumname());
    System.out.println(object);
    System.out.println("-----");
   System.out.println(tracks.length);
   System.out.println(tracks);
   System.out.println("-----");
   for (MultipartFile t : tracks){
        System.out.println("count");
   }
   System.out.println(artwork.getOriginalFilename());
   // new SRP(subObject);



}

Upvotes: 0

Views: 3514

Answers (1)

Blank
Blank

Reputation: 12378

You can try this when you append $scope.files to formData;)

for (var file in $scope.files) {
    formData.append("tracks", file);
}

Upvotes: 4

Related Questions