Главная страница
    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.038 c
1-1101986437
сомневающийся
2004-12-02 14:20
2004.12.19
XP-Manifest и TListView


3-1100946650
DimDim
2004-11-20 13:30
2004.12.19
Простой запрос на выборку


1-1102150083
Bobby Digital
2004-12-04 11:48
2004.12.19
F1


6-1097261876
Wish
2004-10-08 22:57
2004.12.19
Как осуществить поддержку прокси в своей программе?


1-1101996630
the_ram
2004-12-02 17:10
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский