Я создал простое приложение, которое собирает данные формы, генерирует XML в памяти как объект MemoryStream
и доставляет XML на сервер с использованием SMB. Способ доставки прост для SMB:
var outputFile = new FileStream($@"{serverPath}\{filename}.xml", FileMode.Create);
int Length = 256;
Byte[] buffer = new Byte[Length];
int bytesRead = stream.Read(buffer, 0, Length);
while (bytesRead > 0)
{
outputFile.Write(buffer, 0, bytesRead);
bytesRead = stream.Read(buffer, 0, Length);
}
Однако мне нужно создать альтернативный способ доставки с использованием FTP (с учетными данными). Я не хочу переписывать свой метод XML, так как его создание в памяти экономит запись на диск, которая в прошлом была проблемой в нашей среде.
Мне не удалось найти ни одного примера, объясняющего (для человека с очень ограниченными способностями кодирования), как такое можно сделать.
Обычно, когда мне нужно загрузить файл на FTP-сервер, я использую что-то вроде этого:
using (var client = new WebClient())
{
client.Credentials = new NetworkCredential("user", "pass");
client.UploadFile(uri, WebRequestMethods.Ftp.UploadFile, filename.xml);
}
Может ли это быть адаптировано для загрузки с MemoryStream
вместо файла на диске?
Если нет, каким другим способом я могу загрузить MemoryStream
на FTP-сервер?