Я пытаюсь добавить функцию загрузки файлов в свой проект ASP.NET Core 2. Я получаю этот ответ при отправке вызова POST в мою службу WEBApi:
Status Code: 415; Unsupported Media Type
Действие моего контроллера выглядит так:
[HttpPost]
[Route("Upload")]
[Authorize]
public Guid Post([FromBody]IFormFile file)
{
Stream readStream = file.OpenReadStream();
byte[] fileData = new byte[file.Length];
readStream.Read(fileData, 0, fileData.Length);
return _printServiceManager.SaveFile(fileData);
}
Я вызываю его либо из своего клиентского приложения Angular 6, либо из Postman, но ничего не меняется. Я нашел здесь существующий вопрос по этой теме, но данное решение состоит в том, чтобы изменить мой заголовок на «Content-Type: application / json». Без изменений. Затем я попытался найти другую подсказку в Интернете, но единственная подсказка, которую я нашел, говорит мне снова изменить заголовок типа контента следующим образом: «Accept: application / json». Тоже не работает.
Может быть, я спрашиваю о чем-то простом или о том, что я должен знать как веб-разработчик, но у меня карьера, ориентированная на бэкенд, и я пытаюсь понять, что не так с моим кодом. Так что, если у вас есть полный ресурс по этой теме, поделитесь им!
Пытался снова изменить тип содержимого, как было предложено, но получил тот же результат: 
Заранее спасибо.





Content-Type должен быть multipart / form-data
По определению IFormFile не может быть получен с использованием FromBody. IFormFile работает только с запросами в кодировке multipart/form-data, тогда как FromBody работает только с телами запросов JSON или XML.
В результате у вас есть два пути:
Отправьте файл как multipart/form-data (т. Е. Традиционный пост). Вместо этого используйте [FromForm] (или просто пренебрегайте атрибутом).
Фактически отправьте файл как JSON, и в этом случае вам нужно будет выполнить привязку к классу, чтобы представить объект JSON, который вы публикуете. Данные файла должны быть строкой в кодировке base64 в вашем объекте JSON, и затем вы привяжете ее к свойству типа byte[]. ASP.NET Core позаботится о декодировании строки base64 в массив байтов.