Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Дай те пожайлуйста пример работы по FTP


Автор: devmstr 1.2.2005, 00:53
Дай те пожайлуйста пример работы по FTP.
Вообщем я уже "разобрался" и SDk под рукой, но все же с примером было бы намного быстрее. Время страшно поджемает.
Если есть, киньте source!

Автор: sniron 1.2.2005, 02:04
Есть пример фтп сервера пойдет? Токо еще одни компонентики придется качнуть.

Автор: <Spawn> 1.2.2005, 07:54
magician К сожалению примера дать не могу, так как мой проект не OpenSource:) Но там ведь нет ни чего сложного - методом List, формируешь DirectoryListing - пропарсеную информацию о существующих директориях \ файлах, только компонентик не очень хорошо работает со многими серверами(Может в Indy 10 это поправили?), то есть он не может определить тип сервака, поэтому, часто прийдется писать свой парсинг в OnParseCustomListFormat - я для этого случая буду себе скоро COM-сервер писать. Далее - метод ChangeDir осуществляет переход в указаную директоррию. ChageDirUp - осуществляет переход в директорию верхнего уровня. Методы Put \ Get служат соответсвенно для закачки \ скачки файлов сервера. Connect \ Disconnect думаю пояснять не нужноsmile Лучше скачай себе хелп по компонентам Indy - лежит у них на сайте.

Автор: devmstr 1.2.2005, 08:05
sniron
Спасибо, но сервер я не пишу.

<Spawn>
Конечно, в этом случае я не прошу выкладывать. Да и вообщем я испотльзую
только WinInet. И я не говорю, что там сложно, проблемы всегда в мелочах.

Автор: Akella 17.2.2005, 12:59
добавь в uses Wininet
Код

procedure TfmSendMail.BitBtn1Click(Sender: TObject);
Var
_iF:integer;
begin
 InetHandle := InternetOpen(PChar('FTP'), 0, nil, nil, 0);
 FtpHandle := InternetConnect(InetHandle,
                               PChar(leFtpAdress.text),
                               StrToInt(leFtpPort.Text),
                               PChar(leFtpUserName.Text),
                               PChar(leFtpPassword.Text),
                               INTERNET_SERVICE_FTP,0,255);
 if not Assigned(FtpHandle) then
   InternetCloseHandle(InetHandle)
 else
   //пробегаем по списку выбранный файлов
   For _iF:=0 to clbFilesToSend.Items.Count-1 do
     if clbFilesToSend.Checked[_if] then
       try
         FtpPutFile(FtpHandle, PChar(fmMain.sPathToSave+clbFilesToSend.Items[_if]),
                    PChar(clbFilesToSend.Items[_if]), FTP_TRANSFER_TYPE_BINARY,
                    255);
       except
         Showmessage('Ошибка отправки файла: '+fmMain.sPathToSave+clbFilesToSend.Items[_if]+
                     'Проверьте наличие файла');
       end;//try-except
InternetCloseHandle(InetHandle);
end;


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)