我使用 JS 向我的 spring Controller 发送一个 post 请求,但无法接收 multipartFile 数组,我得到的所有数据都是 null。我发送了 3 个单独的参数,如下所示。 (艺术作品、轨道和元数据)
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),但轨道(Array MultiPartFile)为空。
这是我的 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);
}
最佳答案
您可以在将 $scope.files
附加到 formData
时尝试此操作;)
for (var file in $scope.files) {
formData.append("tracks", file);
}
关于javascript - MultipartFile 数组未发送到 spring Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38130229/