Мой метод WebApi готов принять файл в качестве параметра, показанного ниже: (например, uri "https://localhost:44397/api/uploadfile"
[Route("api/[controller]")]
[ApiController]
public class UploadFileController : ControllerBase
{
[HttpPost]
public async Task<IActionResult> Post([FromForm] IFormFile file)
{
}
}
Я использую консольное приложение для отправки файла в этот метод API, ниже приведен мой код:
public static void Send(string fileName)
{
using (var client = new HttpClient())
using (var content = new MultipartFormDataContent())
{
client.BaseAddress = new Uri("https://localhost:44397");
var fs = new FileStream(fileName, FileMode.Open, FileAccess.Read);
var index = fileName.LastIndexOf(@"\");
var fn = fileName.Substring(index + 1);
fs.Position = 0;
var contentfile = new StreamContent(fs);
content.Add(contentfile, "file", fn);
var result = client.PostAsync("/api/uploadfile", content).Result;
}
}
Я также проверил с другими клиентами (например, Почтальон), и там тоже произошел сбой (так что похоже на проблему на стороне сервера, а не в консольном приложении).
Не уверен, что я делаю не так. Каждый раз, когда я проверяю, мой параметр файла метода WebApi всегда имеет значение null.
Может ли кто-нибудь помочь мне найти решение этой проблемы. Я пытался искать в блоге, но безрезультатно. Возможно, я что-то делаюнаивный здесь. Любая помощь очень ценится.