Spring MultipartFiles 在混合多部分中复制文件

Spring MultipartFiles duplicates file in mixed multipart

我有UI这样的代码

  .factory('Service', function ($http, $resource, BASE_PATH) {
function sendResponse (code, responses) {
  return $http({
    method: 'POST',
    url: "/test",
    headers: {'Content-Type': undefined},
    transformRequest: function (data) {
      var formData = new FormData();
      formData.append("dec", new Blob([angular.toJson(data.dec)], {type: 'application/json'}));
      angular.forEach(data.files, file => {
        formData.append("file", file);
      });
      return formData;
    },
    data: {dec: responses.dec, files: responses.files}
  });`enter code here`
}

这里是控制器部分

 @RequestMapping(value = "/test", method = POST)
public ResponseEntity<List<Test>> save(@RequestPart(value = "file", required = false) MultipartFile[] multipartFiles,
    @RequestPart(value = "dec") List<Decision> dec) {
    return save(multipartFiles, dec);
}

问题是,MultipartFile 有重复的文件。例如,我附加了一个 "test.txt" 但是,我在调试时在控制器中看到两个 "test.txt" 文件。

有什么办法可以解决这个问题吗?

我在中间使用 zuul 服务器作为 API 网关。我发现旧版本的 zuul 有一个错误,它复制了 multipart 对象的一部分。

解决办法可以参考这里 github.com/spring-cloud/spring-cloud-netflix/issues/1171