use wininet
...
hFTPSession:= InternetConnect(hInternetSession ,'192.168.1.1',21,'user','pwd',INTERNET_SERVICE_FTP,0,0);
if hFTPSession=nil then memo1.Lines.Add('ftp 连接失败.')
else memo1.Lines.Add('ftp 连接成功.');
;
//设定服务端目录
FtpSetCurrentDirectory(hFTPSession,'/user');
if FileExists('c:/test.txt') then begin
if FtpPutFile(hFTPSession,pchar('c:/test.txt'),'test.txt',INTERNET_FLAG_TRANSFER_BINARY,0) then
memo1.Lines.Add('发送完毕')
else memo1.Lines.Add('发送失败');
end else memo1.Lines.Add('要发送的文件不存在');
InternetCloseHandle(hFTPSession);