Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.19;
Скачать: CL | DM;

Вниз

FTP протокол   Найти похожие ветки 

 
Jeka   (2004-10-07 01:11) [0]

Как отправить/принять файл с сервера по FTP протоколу


 
Defunct ©   (2004-10-07 01:15) [1]

TIdFTP F1


 
PEAKTOP ©   (2004-10-07 07:07) [2]


Пусть имеется файл "C:\myfile.txt" и его надо аплоадить на FTP "ftp://myhost.com" с именем на серваке "myftpfile.txt" в папку "ftp://myhost.com/dir1/subdir1/myftpfile.txt"

Пример:
 if UploadFile("C:\myfile.txt", "myftpfile.txt", ["dir1", "subdir1"])then
   ShowMessage("Файл был загружен на FTP");

{==============================================================================}
function UploadFile(const FileName, FTPFileName:string; DirPath:array of string):boolean;
var
 ftp_host    :string;
 ftp_username:string;
 ftp_password:string;
 ftp_port    :word;
 hInet   :pointer;
 hFTP    :pointer;
 TempDir :string;
 ic      :integer;
 Proxy   :string;
 IsProxy :boolean;
 IsSafe  :boolean;
begin
 Result := false;
 hInet := nil;
 hFTP := nil;
 ftp_host     := "myhost.com";
 ftp_username := "user";      
 ftp_password := "password";
 ftp_port     := 21;
 // Берем настройки IE на предмет использования прокси-сервера
 IsProxy := RegistryGetDWord(
              HKEY_CURRENT_USER,
              "Software\Microsoft\Windows\CurrentVersion\Internet Settings",
              "ProxyEnable") = 1;
 Proxy   := RegistryGetString(
              HKEY_CURRENT_USER,
              "Software\Microsoft\Windows\CurrentVersion\Internet Settings",
              "ProxyServer"
              );
 if IsProxy then
   hInet := InternetOpen("Microsoft Internet Explorer", 3, @Proxy[1], nil, 0)
  else
   hInet := InternetOpen("Microsoft Internet Explorer", 0, nil, nil, 0);
 if(hInet<>NIL) then
   begin
   hFTP := InternetConnect(
             hInet,
             @ftp_host[1],
             ftp_port,
             @ftp_username[1],
             @ftp_password[1],
             1{FTP},
             $08000000 {INTERNET_FLAG_PASSIVE},
             0);
   if(hFTP<>NIL)then
     begin
     // заходим в недра папок FTP
     for ic:=Low(DirPath) to High(DirPath) do
       begin
       TempDir := DirPath[ic];
       if not FtpSetCurrentDirectory(hFTP, @TempDir[1]) then
       // Нет папки - создадим ее
         begin
         FtpCreateDirectory(hFTP, @TempDir[1]);
         FtpSetCurrentDirectory(hFTP, @TempDir[1]);
         end;
       end;
     Result := FtpPutFile(hFTP, @FileName[1], @FtpFileName[1], 0, 0);
     InternetCloseHandle(hFTP);
     end;
   InternetCloseHandle(hInet);
   end;
end;


P.S. В примере условно считаем, что у наc есть функции
RegistryGetString и RegistryGetDWord, читающие из реестра строку и DWrord соответсвенно.



Страницы: 1 вся ветка

Текущий архив: 2004.12.19;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.027 c
3-1101085149
serko
2004-11-22 03:59
2004.12.19
Установка Ehlib!


14-1101999308
Denis_
2004-12-02 17:55
2004.12.19
Где скачать русско-англиский словарь?


8-1095439667
Рыба
2004-09-17 20:47
2004.12.19
ScanLine и RGB


1-1102426790
Aleksandr.
2004-12-07 16:39
2004.12.19
Какое сообщение отправить TMemo, чтобы он проскроллировался?


14-1101457046
gn
2004-11-26 11:17
2004.12.19
Microsoft обвиняют в использовании чужой интеллектуальной собстве