Hochladen von Webapi-Formdaten (in die Datenbank) mit zusätzlichen Parametern

Ich muss eine Datei hochladen, die zusätzliche Parameter sendet.

Ich habe folgenden Beitrag in stackoverflow gefunden:Hochladen von Webapi-Ajax-Formdaten mit zusätzlichen Parametern

Es wird beschrieben, wie Sie dies mit MultipartFormDataStreamProvider tun und Daten auf dem Dateiserver speichern. Ich muss die Datei nicht auf dem Server speichern, sondern in der Datenbank. Und ich habe bereits Code mit MultipartMemoryStreamProvider, aber es werden keine zusätzlichen Parameter verwendet.

Können Sie mir Hinweise geben, wie ich zusätzliche Parameter in webapi verarbeiten kann?

Zum Beispiel, wenn ich eine Datei hinzufüge und auch einen Parameter teste:

data.append("myParameter", "test"); 

Hier ist meine Webapi, die das Hochladen von Dateien ohne zusätzliche Parameter verarbeitet:

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;
}

Antworten auf die Frage(4)

Ihre Antwort auf die Frage