Я загружаю файл в виде потока с обходным решением, связывающим модель Stream
с этой проблемой , и я хочу поддерживать потребления для нескольких типов MIME.Я предполагал, что это будет работать, но это не так:
public class FileController : BaseController
{
[HttpPost("customer/{customerId}/file", Name = "UploadFile")]
[SwaggerResponse(StatusCodes.Status201Created, typeof(UploadFileResponse))]
[Consumes("application/octet-stream", new string[] { "application/pdf", "image/jpg", "image/jpeg", "image/png", "image/tiff", "image/tif"})]
//[Consumes("application/octet-stream", "application/pdf", "image/jpg", "image/jpeg", "image/png", "image/tiff", "image/tif")] // doesn't work either
public async Task<IActionResult> UploadFile([FromBody] Stream file, [FromRoute] string customerId, [FromQuery] FileQueryParameters queryParameters)
{
// file processing here
}
}
Он поддерживает только "application / octet-stream".Любой из других, таких как «image / jpeg», терпит неудачу с 415 неподдерживаемым типом носителя.
Я не могу добавить несколько ConsumeAttributes
.Документация для ConsumeAttribute.ContentTypes гласит:
Получает или задает поддерживаемые типы содержимого запроса.Используется для выбора действия, когда в противном случае было бы несколько совпадений.
Я понятия не имею, что пытается изложить эта документация, но я предположил, что это был способ поддержки дополнительных типов MIME!Есть ли способ обойти это для поддержки нескольких типов MIME?
Обновление Подпись метода здесь фиксирована и не может быть изменена.ConsumesAttribute используется для создания файла JSON Swagger, который клиенты используют для создания своих собственных многоплатформенных клиентов для этого API.