Как загрузить изображение с телом формы и iformfile в net core web api и скопировать его в папку на сервере

Я хочу загрузить изображение в web api и отправить данные за один раз, но оно возвращает мне 415 ошибку кода

я пытаюсь изменить его на fromForm, но он не работает, чтобы

[HttpPost("Vendor")]
 public IActionResult NewAdds([FromBody] Ads add, IFormFile file)
 {
   //copy file first then insert
            if (file.Length > 0)
            {}
}

возвращает 415. Вот результат на почтальона

{
    "type": "https://tools.ietf.org/html/rfc7231#section-6.5.13",
    "title": "Unsupported Media Type",
    "status": 415,
    "traceId": "80000041-0003-ff00-b63f-84710c7967bb"
}

1 ответ

Для тех, кто смотрит на это, вы захотите добавить IForm file как поле внутри Adsобъект. Вместо того, чтобы использовать[FromBody], вы захотите использовать [FromForm] вариант.

Попробуйте создать форму с вводом Тип файла

<form method="post" enctype="multipart/form-data" asp-controller="" asp-action="Upload">
  <input type="file" name="files" accept="image/*" id='' multiple />
</form>

Сделайте так, чтобы ваши действия принимали файлы

public IActionResult Upload(List<IFormFile> files)

Запись файла в папку на сервере должна быть достаточно простой, если у вас есть все необходимые права доступа.

Другие вопросы по тегам