Wie kann ich ein Bild und POST-Daten auf einen Azure Mobile Services ApiController-Endpunkt hochladen?

Ich versuche ein Bild hochzuladenun POST Formulardaten (obwohl ich es im Idealfall gerne hättejson) zu einem Endpunkt in meinemAzure Mobile Services application.

Ich habeApiController Methode

[HttpPost]
[Route("api/upload/{databaseId}/{searchingEnabled}/{trackingEnabled}")]
public async Task<IHttpActionResult> Upload(string databaseId, string searchingEnabled, string trackingEnabled, [FromBody]string metadata) {

    if (!Request.Content.IsMimeMultipartContent()) {
        return BadRequest("No image is uploaded.");
    }
    else {
        var provider = new MultipartMemoryStreamProvider();
        await Request.Content.ReadAsMultipartAsync(provider);
        foreach (var file in provider.Contents) {
             // Process each image uploaded
        }
    }
}

Dies funktioniert nur, wenn ich das @ entfer[FromBody]string metadata, aber dann funktioniert es super.

Wann[FromBody]string metadata ist enthalten (wie oben), ich bekomme den Fehler:

The request entity's media type 'multipart/form-data' is not supported for this resource.

Jedoc, Ich würde gernePOST zusätzlichmetadata (das kann lang sein, also möchte ich es nicht in den Uri schreiben).

Wie kann ich die Datei-Upload-Logik beibehalten und auchPOST zusätzliche Stringdaten zu meinem Controller?

Ich verwende Azure Mobile Services, daher befindet sich dieser Code in einemSystem.Web.Http.ApiController (wenn das wichtig ist).

Antworten auf die Frage(2)

Ihre Antwort auf die Frage