Я пытаюсь загрузить изображение и данные формы POST
(хотя в идеале я бы хотел, чтобы оно было json
) для конечной точки в моем приложении Azure Mobile Services.
У меня есть метод ApiController
:
[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
}
}
}
Это работает, когда я удаляю [FromBody]string metadata
, но тогда он отлично работает.
Когда [FromBody]string metadata
включен (как указано выше), я получаю ошибку:
The request entity media type 'multipart/form-data' is not supported for this resource.
Однако я хотел бы POST
дополнительный metadata
(который может быть длинным, поэтому я не хочу помещать его в Uri).
Как я могу сохранить логику загрузки файла, а также POST
дополнительные данные строки на мой контроллер?
Я использую Azure Mobile Services, поэтому этот код находится внутри System.Web.Http.ApiController
(если это имеет значение).