我發送一個使用JS的彈簧控制器的發佈請求,但我不能接收multipartFile數組,我得到的是null。我發送3個獨立的參數,如下所示。 (藝術品,軌道和元數據)MultipartFile數組沒有發送到彈簧控制器
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;
}
}).
我確實收到的元數據(這是一個字符串)和藝術品(這是一種單一MultiPartFile)從參數,但空曲目(陣列MultiPartFile)。
這裏我控制器
@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);
}
你檢查開發商的控制檯,看看文件發送或調試,看看$ scope.files有文件? –
嗨,是的,我沒有在控制檯輸出結果,它有文件... $ scope.file = [文件,文件,文件,文件,文件,文件](正確的輸出)只是沒有收到任何東西在控制器end @RossiRobinsion –
我認爲你所要做的不是傳遞文件數組,而是可以將它們分別追加到FormData中。由於你的藝術作品文件正在工作,但跟蹤 –