Главная страница
    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.47 MB
Время: 0.031 c
1-1102096504
APXi
2004-12-03 20:55
2004.12.19
Проверка возможности создания объекта в конструкторе


9-1092799626
Andry
2004-08-18 07:27
2004.12.19
Как не проходить сквозь преметы???


14-1101493824
Alexander Panov
2004-11-26 21:30
2004.12.19
consts.pas из Delphi3.


14-1101843293
saNat
2004-11-30 22:34
2004.12.19
Потоки


3-1100690986
Dionnis
2004-11-17 14:29
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский