Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.12.19;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.032 c
1-1102032607
Garfunkel
2004-12-03 03:10
2004.12.19
Сворачивание в трей при загрузке Windows


9-1081947793
NightFire
2004-04-14 17:03
2004.12.19
Всем программистам ..... СОС!!!


14-1102004474
Alex_Petr
2004-12-02 19:21
2004.12.19
А где предпятничные задачки ?


14-1101568573
OneFragLeft
2004-11-27 18:16
2004.12.19
Налоги.


3-1101128394
slaga
2004-11-22 15:59
2004.12.19
Как создать процедуру в ИБ "на лету"?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский