Delphi FTP dosya gönderme
function TAnaF.FtpDosyaGonder (IdFTP : TIdFTP; SrcDosya, DesDosya:TFileName; RemoteDir: String;FtpAdr,FtpUser,FtpSifre:String ):string;
var
FtpC: TIdFTP;
yil: Word;
ay: Word;
gun: Word;
begin
DecodeDate(date,yil,ay,gun);
FtpC := TIdFTP.Create(Self);
Result := '';
with FtpC do
Begin
Disconnect;
AutoLogin := IdFTP.AutoLogin;
AutoIssueFEAT := IdFTP.AutoIssueFEAT;
IPVersion := IdFTP.IPVersion;
TransferType := IdFTP.TransferType;
ReadTimeout := IdFTP.ReadTimeout;
ListenTimeout := IdFTP.ListenTimeout;
Passive := IdFTP.Passive;
Host := FtpAdr;
Username := FtpUser;
Password := FtpSifre;
Connect;
End;
Application.ProcessMessages;
If FtpC.Connected then
begin
FtpC.ChangeDir(RemoteDir);
try
FtpC.MakeDir(RemoteDir+'/'+yil.ToString); // Klasör oluşturmayı dene
FtpC.ChangeDir(RemoteDir+'/'+yil.ToString); // oluşturulan klasöre bağlan
except
FtpC.ChangeDir(RemoteDir+'/'+yil.ToString); // eğer klasör varsa klasöre git
end;
Try
Application.ProcessMessages;
// FtpC.TransferType := ftBinary; // Uses kısmına IdFTPCommon
eklenmeli
FtpC.Put(DesDosya,SrcDosya, False);
Finally
Result := SiteURL.Text+'/'+yil.ToString+'/'+SrcDosya; //gönderilen yıl bazlı klasöre yükler
FtpC.Quit;
end;
Application.ProcessMessages;
end;
FtpC.Disconnect;
FreeAndNil(FtpC);
end;
Kullanımı
procedure TAnaF.Button1Click(Sender: TObject);
var
dosya: string;
Mesaj: string;
begin
dosya :='0860472212.png';
Mesaj := FtpDosyaGonder(FtpConnection,dosya,TempFileYolu + dosya,FtpYol.Text,FTPAdres.Text,FtpKullanici.Text,FtpSifre.Text);
ShowMessage(Mesaj);
end;