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
我有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