Мне нужно загрузить файл, отправляющий дополнительные параметры.
Я нашел следующее сообщение в stackoverflow: Webapi ajax formdata upload с дополнительными параметрами
В нем описывается, как это сделать, используя MultipartFormDataStreamProvider и сохраняя данные на файловом сервере. Мне не нужно сохранять файл на сервер, а вместо этого DB. И у меня уже работает код с помощью MultipartMemoryStreamProvider, но он не использует дополнительный параметр.
Можете ли вы рассказать мне, как обрабатывать дополнительные параметры в webapi?
Например, если я добавляю файл, а также test paramater:
data.append("myParameter", "test");
Вот мой webapi, который обрабатывает файловую загрузку без дополнительного параметра:
if (Request.Content.IsMimeMultipartContent())
{
var streamProvider = new MultipartMemoryStreamProvider();
var task = Request.Content.ReadAsMultipartAsync(streamProvider).ContinueWith<IEnumerable<FileModel>>(t =>
{
if (t.IsFaulted || t.IsCanceled)
{
throw new HttpResponseException(HttpStatusCode.InternalServerError);
}
_fleDataService = new FileDataBLL();
FileData fle;
var fleInfo = streamProvider.Contents.Select(i => {
fle = new FileData();
fle.FileName = i.Headers.ContentDisposition.FileName;
var contentTest = i.ReadAsByteArrayAsync();
contentTest.Wait();
if (contentTest.Result != null)
{
fle.FileContent = contentTest.Result;
}
// get extra parameters here ??????
_fleDataService.Save(fle);
return new FileModel(i.Headers.ContentDisposition.FileName, 1024); //todo
});
return fleInfo;
});
return task;
}