Ftp Клиент Исходники Delphi
Сегодня рассмотрим работу с ещё одним сетевым протоколом с использованием библиотеки – File Transfer Protocol (FTP). Давно уже собирался написать про него, но всё как-то было лень:) Сегодня решил всё-таки выкроить немного времени и разобраться с работой с FTP-протоколом в Synapse. Для начала я решил немного поиздеваться над FTP-шником своего блога и написать небольшую программку, реализующую основные операции: логин, чтение списка каталогов, загрузка на сервер, скачивание с сервера и т.д. Поэтому сегодня рассмотрим рабочий пример, а в конце поста я дам ссылку на страничку описания класса TFTPSend. Как Вы уже поняли из введения к посту, работа с FTP в Synapse организуется через использование экземпляров класса TFTPSend, который находится в модуле ftpsend.pas.
Исходник программы, показывающей пример создания ftp клиента использующего рекурсию.
- Заказать, купить работу Ftp клиент (delphi) по предмету Программирование.
- 'FTP Client Server ()'. А так, там есть вклада FastNet вроде бы. На ней компонент, к нему.
Поэтому можете запускать и смело подключать этот модуль в uses. Вначале накидаем компоненты на форму. Я решил сделать главную форму приложения такой: На форме расположены:. 4 Edit’а – для определения параметров подключения;. 2 кнопки TButton – для коннекта и дисконнекта (хотите – сделайте одну для обеих операций – это не суть). 1 ListView для вывода содержимого текущей директории.
1 Memo для ведения лога работы – сюда будем записывать некоторые сообщения от сервера, чисто для наглядности и не более. Коннектимся к серверу. Первое, что нам необходимо – это авторизоваться на сервере. Для этого определим переменную. FTPClient: =TFTPSend.
Create; FTPClient. TargetHost: =Edit1. Text; FTPClient. TargetPort: =Edit2. Text; FTPClient.
Ftp Клиент Исходники Delphi
UserName: =Edit3. Text; FTPClient. Password: =Edit4. Text; FTPClient. PassiveMode: =CheckBox1. Checked; if FTPClient. Login then begin Memo1.

Add ( 'Логин прошел успешно' ); end; FTPClient:=TFTPSend.Create; FTPClient.TargetHost:=Edit1.Text; FTPClient.TargetPort:=Edit2.Text; FTPClient.UserName:=Edit3.Text; FTPClient.Password:=Edit4.Text; FTPClient.PassiveMode:=CheckBox1.Checked; if FTPClient.Login then begin Memo1.Lines.Add('Логин прошел успешно'); end; Здесь следует обратить внимание на то, что при определении параметров одключения использовались свойства родителя для TFTPSend, т.е. Класса TSynaClient. Сам же TFTPSend содержит аналогичные свойства с префиксом «FW» — эти свойства определяются для работы с брендмауэром. Итак мы определили:. TargetHost — хост FTP.
TargetPort — порт (по умолчанию — 21). UserName — имя пользователя. Password — пароль доступа и затем воспользовались методом Login для доступа к серверу. Если Login вернул True — значит коннект прошел успешно и можно продолжать работу (получать список каталогов, качать файлы и т.д.) Движемся далее.
Как узнать текущую директорию в которой мы находимся и перемещаться по директориям? Для этого у TFTPSend имеется несколько методов: GetCurrentDir – возвращает имя директории в которой мы находимся на данный момент. Function ChangeToRootDir: Boolean; virtual; function ChangeToRootDir: Boolean; virtual; Переходит в корневую директорию на сервере. Функция может не сработать (вернуть False), например, в случае, когда используется FTP на бесплатном хостинге — там доступ дается обычно не на корень а на отдельную директорию лежащую на хз каком уровне от Root’а. Теперь можете дописать обработчик, например так, чтобы в лог выписывалась текущая директория на сервере. Предположим, что коннект состоялся, мы знаем где находимся на сервере.
Как нам теперь получить список всех директорий и файлов в текущей нашей директории? Для этого нам потребуется метод.
Procedure TForm2. Button1Click (Sender: TObject ); var i: integer; begin FTPClient: =TFTPSend. Create; FTPClient. TargetHost: =Edit1. Text; FTPClient. TargetPort: =Edit2.
Text; FTPClient. UserName: =Edit3. Text; FTPClient. Password: =Edit4. Text; FTPClient. PassiveMode: =CheckBox1.
Checked; if FTPClient. Login then begin Memo1.
Add ( 'Логин прошел успешно' ); Memo1. Add ( 'Текущая директория ' +FTPClient. GetCurrentDir ); ListView1.

Clear; FTPClient. List (FTPClient. GetCurrentDir, false ); for i: = 0 to FTPClient. Count - 1 do begin with ListView1. Add do begin Caption: =FTPClient.
FtpList i. FileName; if FTPClient. FtpList i. Directory then SubItems. Add ( 'директория' ) else SubItems.

Протокол Ftp Предназначен Для
Add ( 'файл' ); SubItems. Add ( DateToStr (FTPClient. FtpList i.
FileTime ) ) end; end; end; Memo1. Add (FTPClient. RetrieveFile ( 'Имяфайланасервере', false ); //прочитали файл в поток FTPClient. SaveToFile ( 'Имяфайланадиске' ); //сохранили из потока на диск FTPClient.RetrieveFile('Имяфайланасервере',false);//прочитали файл в поток FTPClient.DataStream.SaveToFile('Имяфайланадиске');//сохранили из потока на диск Вот пожалуй и основные навык работы с FTP в Synapse. Думаю, что смысл понятен, а остальное будем разбирать по ходу дела:) Пока можете почитать дополнительно:. (в разработке может принять участие каждый). Пришлось по работе бросать файлы на ФТП сервер с SSL.
Вроде удалось решить проблему благодаря вашему примеру, но с некоторыми модификациями. В раздел USES добавил плагин sslopenssl и в свойствах создаваемого клиента FTPClient.FullSSL:= True; Но это потребовало тащить с приложением еще две DLL от OpenSSL Прочитал в Синапсе, что можно использовать плагин sslstreamsec с библиотекой OpenStrSecII. В этом случае можно избавится от ДЛЛ Нашел такую библиотеку, но все мои потуги не дали результатов. Я использую древнюю Дельфи5. Не компилируется sslstreamsec. Не знает функции Sleep.
Для компиляции добавил в USES модуль Windows. Но попытка логина к ФТП серверу стабильно выдает Invalid Pointer Operation. Нет ли где то работающего примера с этим плагином. Собственно, сам код: procedure moveftp; begin FTPClient:=TFTPSend.Create; FTPClient.TargetHost:=form1.srvname.Text; FTPClient.TargetPort:=form1.ftpprt.Text; FTPClient.UserName:=form1.usrname.Text; FTPClient.Password:=form1.pass.Text; FTPClient.PassiveMode:=form1.passmode.Checked; if FTPClient.Login then begin form1.ftpinfo.caption:='Логин прошел успешно'; end else begin form1.ftpinfo.caption:='Неудача'; end; FTPClient.ChangeToRootDir; FTPClient.DataStream.LoadFromFile(absname);//записали содержимое файла в поток FTPClient.StoreFile(outputfile, false);//сохранили на сервер end. Столкнулся с проблемой: допустим по клику на кнопке указанный текстовый файл должен отправиться на сервер (обычный хостинг) посредством ftp соединения. С прямым подключением к интернету все идеально. А если интернет идет по локальной сети, аля через прокси, программа тупо не видит интернет-подключения.
Пробовал indy 10, synapse. C socks не разобрался, да и вообще имеет ли оно место для интернет-подключения через локалку с другого компьютера? Допустим мне известен порт и хост, других настроек прокси не задавалось, логинов и паролей нет.
Как реализовать подключение через socks? Возможно ли подключение ftp через http прокси?
В indy 10 например в компоненте idFTP (аналог ftpsend) есть тип прокси FtpWithHttp (правда все равно нифига не помогло), как обстоит дело в synapse? Как еще можно решить эту проблему? Кто-то пытался победить кириллицу в названиях файлов? У меня выдает следующее: -rw-rw—- 1 admin admin 28579502 Jul 07 08:15???????
201527.txt -rw-rw—- 1 admin admin 29083897 Jul 14 09:31??????? 201528.txt -rw-rw—- 1 admin admin 28942866 Jul 21 08:28??????? 201529.txt -rw-rw—- 1 admin admin 29020851 Jul 28 09:56???????
201530.txt -rw-rw—- 1 admin admin 29417301 Aug 04 08:24??????? 201531.txt -rw-rw—- 1 admin admin 30110625 Aug 11 07:39??????? 201532.txt -rw-rw—- 1 admin admin 30701620 Aug 18 08:18??????? 201533.txt -rw-rw—- 1 admin admin 29872637 Aug 26 13:26??????? 201534.txt -rw-rw—- 1 admin admin 30502159 Sep 01 08:18???????
Скачать Filezilla На Русском
Навигация Реклама Услуги. Популярные статьи 5 5 5 5 5 5 5 8 3 7 Реклама Сейчас на сайте Гостей: 20 На сайте нет зарегистрированных пользователей Пользователей: 13,070 новичок: Новости Реклама Выполняем курсовые и лабораторные по разным языкам программирования Подробнее - Delphi, Turbo Pascal, Assembler, C, C, C#, Visual Basic, Java, GPSS, Prolog, 3D MAX, Компас 3D Реклама Подписывайся на, что бы не пропустить новые видео! Professional Download System.