Главная страница
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.022 c
1-1102057217
denis24
2004-12-03 10:00
2004.12.19
TdateEdit.date


4-1099583763
heady
2004-11-04 18:56
2004.12.19
И снова выбор каталога


3-1100700425
Александр_
2004-11-17 17:07
2004.12.19
Как узнать о результате выполнения запроса в InterBase?


1-1102089486
Игорь нтк
2004-12-03 18:58
2004.12.19
Combobox


3-1100966652
Top
2004-11-20 19:04
2004.12.19
Обновление данных