Одним из решений является то, что вы можете использовать MemoryStream
для преобразования содержимого файла. Ваш метод приведет к тому, что содержимое файла main.txt станет пустым.
Измените ваш код следующим образом:
HttpClient _client = new HttpClient();
Stream stream = new FileStream("main.txt", FileMode.Open);
MemoryStream ms = new MemoryStream();
stream.CopyTo(ms);
byte[] fileBytes = ms.ToArray();
ms.Dispose();
Другой способ заключается в использовании System.IO.File.ReadAllBytes(filePath)
.
Попробуйте опубликовать файл, используя приведенный ниже пример кода, см. Мой ответ .
using (var client = new HttpClient())
{
using (var content = new MultipartFormDataContent())
{
//replace with your own file path, below use an txt in wwwroot for example
string filePath = Path.Combine(_hostingEnvironment.WebRootPath, "main.txt");
byte[] file = System.IO.File.ReadAllBytes(filePath);
var byteArrayContent = new ByteArrayContent(file);
content.Add(byteArrayContent, "file", "main.txt");
var url = "https://localhost:5001/foo/bar";
var result = await client.PostAsync(url, content);
}
}
действие foo / bar
[HttpPost]
[Route("foo/bar")]
public IActionResult ProcessData([FromForm]IFormFile file)
{
//your logic to upload file
}