Загрузка файлов по FTP

Категория: C# Комментариев: 3

Функция на C# для загрузки файла на сервер по FTP.

Необходимые для работы с сетью классы и методы находятся в неймспейсах System.Net и System.IO. Добавляем их к своему проекту:

using System.Net;
using System.IO;

Собственно функция загрузки файла:

 public static void ftpfile(string ftpfilepath, string inputfilepath, string ftphost, string ftplogin, string ftppass)
 {

 string ftpfullpath = "ftp://" + ftphost + ftpfilepath;
 FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath);
 ftp.Credentials = new NetworkCredential(ftplogin, ftppass);
 ftp.KeepAlive = true;
 ftp.UseBinary = true;
 ftp.Proxy = null;
 ftp.Method = WebRequestMethods.Ftp.UploadFile;
 FileStream fs = File.OpenRead(inputfilepath);
 byte[] buffer = new byte[fs.Length];
 fs.Read(buffer, 0, buffer.Length);
 fs.Close();
 Stream ftpstream = ftp.GetRequestStream();
 ftpstream.Write(buffer, 0, buffer.Length);
 ftpstream.Close();
 }

Вызываем функцию следующим образом:

// какой-то код
ftpfile("/file.txt", "/home/user/file.txt", "ftp.site.ru", "login", "password");
// какой-то код
Автор: Кто-то   @   14 марта 2009 Комментариев: 3
Метки : ,

Поблагодарить автора

Webmoney Z163628999150, R617151845974

Комментариев: 3

Комментарии
июля 22, 2010
4:22
#1 Афрам :

Спасибо за код, а то везде как то через жопу написано.

Только у Вас недочеты:

01.

public static void ftpfile (string ftpfilepath, string inputfilepath, string ftphost, string ftplogin, string ftppass)

Автор июля 23, 2010
10:50

Спасибо за замечание! Исправил.

Фев 12, 2011
0:40
#3 Алексей :

Большое спасибо за простой код, помогло!

Использовал библиотеку ByteRoad (не рекомендую) и не мог понять, что не так при подключении — библиотека не показывала исключения из уровня библиотеки System.Net, перекрывая их своими.

оставить комментарий

Предыдущая запись
«
Следующая запись
»