我想上传一个文件以及一些元数据到我用ng-file-upload和Angular创建的WebApi服务。我按照预期获取文件名和字节,但是我无法获取我传递的元数据。下面是我在做什么的角度侧上传CustomData与ng-file-upload和WebApi
Upload.upload({
url: '/api/FileStorage/AddContent' + location.search,
data: {file: files, year: vm.year }
})
而且的WebAPI侧
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;
这里我使用的是MultiStreamProvider获取文件,这里要说的是供应商的肉
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?