ng-file-upload 및 Angular로 만든 WebApi 서비스에 일부 메타 데이터와 함께 파일을 업로드하려고합니다. 예상대로 파일 이름과 바이트를 가져오고 있지만 통과하는 메타 데이터를 가져올 수 없습니다. 저는 여기에 각 측면ng-file-upload 및 WebApi를 사용하여 CustomData 업로드
Upload.upload({
url: '/api/FileStorage/AddContent' + location.search,
data: {file: files, year: vm.year }
})
내가 파일을 얻을 수있는 MultiStreamProvider를 사용하고 여기에
var streamProvider = new CustomMultipartFileStreamProvider();
IEnumerable<HttpContent> parts = null;
Task.Factory
.StartNew(() => parts = Request.Content.ReadAsMultipartAsync(streamProvider).Result.Contents,
CancellationToken.None,
TaskCreationOptions.LongRunning, // guarantees separate thread
TaskScheduler.Default)
.Wait();
var customData = streamProvider.CustomData;
WebApi 측에서하고있는 무슨이다, 여기에 공급자의 고기는
public override Task ExecutePostProcessingAsync()
{
foreach (var file in Contents)
{
var parameters = file.Headers.ContentDisposition.Parameters;
var filename = GetNameHeaderValue(parameters, "filename");
var year = GetNameHeaderValue(parameters, "year");
}
return base.ExecutePostProcessingAsync();
}
파일 이름을 문제없이 얻을 수 있지만 올해를 결코 얻을 수 없습니다. 여기에 당신이 볼 수 있듯이
변수 매개 변수에서 찾고 디버거에서 값이, 이름은 "이름"이고 값은 내가 기대하는 때 "해"이름이 될 것입니다 "year"이고 값이 "2016"이거나 내가 무엇을 전달하는지 알고 싶습니다. 내가 여기서 뭘 잘못하고 있고 Api와 동일한 호출에 메타 데이터를 포함시키는 방법은 무엇입니까?