Member 13777104 Ответов: 1

Как загрузить файлы и зашифровать их на FTP сервере


я написал ниже код для копирования файла из локальной системы на ftp-сервер , аналогично мне нужно выбрать несколько файлов и загрузить их на сервер . Пока я загружаю файлы, они должны быть преобразованы в зашифрованные файлы, любые предложения, я также написал код для шифрования.

Что я уже пробовал:

public class WebRequestGetExample  
{  
public static void Main ()  
{  
// Get the object used to communicate with the server.  
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://192.1....../ftp.txt"); request.Method =WebRequestMethods.Ftp.UploadFile;  
// This example assumes the FTP site uses anonymous logon.  
request.Credentials = new NetworkCredential("username", "password");  
// Copy the contents of the file to the request stream.  
byte[] fileContents;  
using (StreamReader sourceStream = new StreamReader("E:\\Anusha\\ftp.txt"))  
{  
fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());  
}  
request.ContentLength = fileContents.Length;  
using (Stream requestStream = request.GetRequestStream())  
{  
requestStream.Write(fileContents, 0, fileContents.Length);  
}  
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())  
{  
Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);  
}  
}  
}

Richard MacCutchan

Чтобы загрузить несколько файлов, вам нужно сделать это в цикле. И вы можете зашифровать их перед отправкой или при получении на сервере.

Member 13777104

Привет Ричард,
Я хочу зашифровать файл при загрузке на ftp-сервер, например, когда мы нажимаем на файл, который нам нужно зашифровать, как мы все загружаем в ftpserver, и когда мы нажимаем на загрузку на сервере, он должен расшифровываться. есть идеи по этому поводу

1 Ответов

Рейтинг:
0

RickZeeland

служба WebClient предлагает простой способ загрузки и выгрузки с помощью FTP, см.: c# - загрузка файла и загрузка файла с FTP - переполнение стека[^]
Вы можете зашифровать его с помощью System.Security.Cryptography пространство имен в файле .NET.
Вот хорошая статья о шифровании на CodeProject: Шикарное шифрование/дешифрование на языке Си#[^]


Member 13777104

Привет, я написал ниже код для загрузки нескольких файлов,но определенная папка не была обновлена на ftp-сервере, пожалуйста, помогите, где я ошибся.
публичный класс WebRequestGetExample
{
публичный статический пустота главный ()
{
пробовать
{
// Получить объект, используемый для связи с сервером.
Запрос FtpWebRequest = (FtpWebRequest)WebRequest.Создать("ftp://192...../E:\\folder1");
запрос.Method = WebRequestMethods.Ftp.UploadFile;
// В этом примере предполагается, что FTP-сайт использует анонимный вход в систему.
запрос.Учетные данные = new NetworkCredential("username", "pwd");
// Скопируйте содержимое файла в поток запросов.
IEnumerable<string> files = каталог.EnumerateFiles(@"E:\\folder1");
использование (WebClient client = новый WebClient())
{
клиент.Учетные данные = новый NetworkCredential("имя пользователя", "пароль");
foreach (строковый файл в файлах)
{
клиент.UploadFile("ftp://192..../E:\\folder1" + Path.GetFileName(file), файл);
}
}

используя (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
{
Приставка.WriteLine("загрузка файла завершена, статус {0}", ответ.StatusDescription);
}
}
catch(исключение e)
{

}
}

RickZeeland

Может быть, вам нужно установить ftpRequest.UseBinary to true, см. пример здесь: https://www.codeproject.com/Articles/667201/FtpWebRequest
Для больших файлов вам может потребоваться установить ftpRequest.Значение таймаута.

Member 13818142

Привет, я получаю ошибку, так как имя "ftpRequest" не существует в текущем контексте, что мне делать

RickZeeland

В вашем коде это называется "запрос" ...

Member 13818142

Извините, сэр, я выполнил приведенный выше код, но не могу отобразить файлы на ftp-сервере не уверен, где изменить код искал примеры, но я не уверен, где изменить пожалуйста, предложите, мой цикл завершается после clientuploadfile(...)statment

RickZeeland

И какая ошибка отображается в окне вывода, когда вы меняете свой улов на этот:

catch(исключение e)
{
Отлаживать.Печать(например,сообщение);
}

Member 13818142

@Rick спасибо за ваш ответ ошибка была устранена это была просто простая ошибка, Я беру правильное имя пользователя ftp и pwd, извините за неприятности..

Member 13818142

точно так же, когда я загружаю файл, мне нужно написать код для файла, а затем этот файл должен быть зашифрован любой идеей.