Функция на 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");
// какой-то код
|
|
Webmoney Z163628999150, R617151845974
|
Спасибо за замечание! Исправил.
Большое спасибо за простой код, помогло!
Использовал библиотеку ByteRoad (не рекомендую) и не мог понять, что не так при подключении — библиотека не показывала исключения из уровня библиотеки System.Net, перекрывая их своими.
4:22
Спасибо за код, а то везде как то через жопу написано.
Только у Вас недочеты:
01.
public static void ftpfile (string ftpfilepath, string inputfilepath, string ftphost, string ftplogin, string ftppass)