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).