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();
}
問題なくファイル名を取得できますが、今年は一度も入手できません。ここで私はあなたが見ることができるように
可変パラメータで探していますデバッガの値があり、名前が「名前」で、値は、私が期待したときに「年」の名前があることをあります「年」と値が「2016」になるか、または何かを渡すかどうかここで間違っていますが、Apiへの同じ呼び出しにメタデータを含めるにはどうすればよいですか?