Я работаю над проектом веб-API и хочу загрузить файл на сервер.Я использую приведенный ниже код для метода действия загрузки.
[HttpPost]
public async Task Post([FromForm]IFormFile file)
{
var uploads = Path.Combine(_environment.WebRootPath, "uploads");
if (file.Length > 0)
{
using (var fileStream = new FileStream(Path.Combine(uploads,
file.FileName), FileMode.Create))
{
await file.CopyToAsync(fileStream);
}
}
}
, и я использую приведенный ниже код для консольного клиента для загрузки файла на сервер с использованием API.
static void Main(string[] args)
{
FileStream stream = new FileStream("D://Infos.txt", FileMode.Open);
HttpContent fileStreamContent = new StreamContent(stream);
fileStreamContent.Headers.ContentDisposition = new
System.Net.Http.Headers.ContentDispositionHeaderValue("form-data")
{ Name = "D://Infos.txt", FileName = "D://Infos.txt" };
fileStreamContent.Headers.ContentType = new
System.Net.Http.Headers.MediaTypeHeaderValue("multipart/form-data");
using (var client = new HttpClient())
{
using (var formData = new MultipartFormDataContent())
{
formData.Add(fileStreamContent);
var response =
client.PostAsync("http://localhost:2184/api/values", formData);
Console.WriteLine(response.Result.IsSuccessStatusCode);
Console.ReadKey();
}
}
}
Но когда яя запускаю этот код, я получаю нулевое значение как файл на стороне метода действия.
Я использовал атрибут [FromBody] для параметра IFormFile метода действия, но он тоже не работал.
Почему это не так?не работает?