Webapi formdata upload (do DB) z dodatkowymi parametrami
Muszę przesłać plik wysyłający dodatkowe parametry.
Znalazłem następujący wpis w stackoverflow:Webapi ajax formdata upload z dodatkowymi parametrami
Opisuje, jak to zrobić, używając MultipartFormDataStreamProvider i zapisując dane do serwera plików. Nie muszę zapisywać pliku na serwerze, ale zamiast tego w DB. I już pracuję kod za pomocą MultipartMemoryStreamProvider, ale nie używa dodatkowego parametru.
Czy możesz dać mi wskazówki, jak przetwarzać dodatkowe parametry w webapi?
Na przykład, jeśli dodam plik, a także testuję parametry:
data.append("myParameter", "test");
Oto mój webapi, który przetwarza ładowanie plików bez dodatkowych parametrów:
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;
}