Я настраиваю передачу файлов через библиотеку Renci SSH.NET, используя SFTP и C #.
И я застрял в этой проблеме.
Всякий раз, когда я загружаю файл в моей программе ASP .NET Core, он отправляет файл, но отправляет его как пустой файл с тем же именем.
public async Task<IActionResult> UploadFiles(List<IFormFile> files)
{
string host = "----";
string username = "----";
string password = "----";
string Name = "";
var Stream = new MemoryStream();
List<MemoryStream> stream = new List<MemoryStream>();
var connectionInfo = new Renci.SshNet.ConnectionInfo(host, username, new PasswordAuthenticationMethod(username, password));
var sftp = new SftpClient(connectionInfo);
sftp.Connect();
sftp.ChangeDirectory("DIRECTORY");
try
{
//Read the FileName and convert it to Byte array.
foreach (var formFile in files)
{
var memoryStream = new MemoryStream();
await formFile.CopyToAsync(memoryStream);
Name = formFile.FileName;
using (var uplfileStream = memoryStream)
{
sftp.UploadFile(uplfileStream, Name, null);
}
}
}
catch (WebException ex)
{
throw new Exception((ex.Response as FtpWebResponse).StatusDescription);
}
sftp.Disconnect();
return View("Inbox");
}
Я ожидаю вывод, когда файл загружается на сервер, но фактический вывод - это файл, загружаемый на сервер с тем же именем, что и файл, который я пытался загрузить, но его размер равен 0 КБ, то есть он пуст.