Форум: "Сети";
Текущий архив: 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