有什么简单的方法可以在 Lazarus 代码中使用 FTP 函数
Is there any simple way to use the FTP function in Lazarus code
我刚接触 Lazarus 几个月。我一直在尝试创建一个小的 FTP 程序,它将在登录后发送一个小文件。我已经完成了所有粘糊糊的事情,我唯一关心的是 FTP 部分。我遇到了很多错误,我一直在努力安装正确的软件包
我的 FTP 代码如下所示
function TModel.Send(LocalFile : string; remoteFile : string; RemoteDir : string) : boolean;
//===========================================================================
// **********************************************************************
// * Send a file to the FTP server *
// **********************************************************************
//---------------------------------------------------------------------------
var
rc : boolean;
begin
// Create the FTP Client object and set the FTP parameters
FTPClient := TFTPSend.Create;
with FTPClient do begin
TargetPort := cFtpProtocol;
TargetHost := fHost; // these were properties set somewhere else
UserName := fUserID;
Password := fPassword;
//-----------------------------------------------------------------------
// bail out if the FTP connect fails
if not LogIn then exit;
//------------------------------------------------------------------------
// Set filename to FTP
DirectFileName := LocalFile;
DirectFile := True;
//------------------------------------------------------------------------
// change directory if requested
if RemoteDir <> '' then ChangeWorkingDir(RemoteDir);
//------------------------------------------------------------------------
// STOR file to FTP server.
rc := StoreFile(RemoteFile,false);
//------------------------------------------------------------------------
// close the connection
LogOut;
//------------------------------------------------------------------------
// free the FTP client object
free;
//------------------------------------------------------------------------
end;
Result := rc;
//===========================================================================
end;
感谢您的帮助。
噢,拉撒路 XD。我不确定是否有任何简单的方法。前段时间我尝试做类似的事情,但我没有抽出时间完成它……但我确实让 FTP 开始工作,看看下面的代码
begin
IdSMTP := TIdSMTP.Create(nil);
try
IdSMTP.Host := 'smtp.jonas.com';
IdSMTP.Port := 587;
IdSMTP.AuthType := satDefault;
IdSMTP.Username := 'server@jonas.com';
IdSMTP.Password := 'TeCat#!';
IdSMTP.Connect;
if IdSMTP.Authenticate then;
begin
IdMessage := TIdMessage.Create(nil);
try
IdMessage.From.Name := 'Jonas Server';
IdMessage.From.Address := 'server@jonas.com';
IdMessage.Subject := subject;
IdMessage.Body.AddStrings(message);
IdEmailAddressItem := IdMessage.Recipients.Add;
IdEmailAddressItem.Address := 'server@jonas.com';
IdSMTP.Send(IdMessage);
finally
IdMessage.Free;
end;
end;
IdSMTP.Disconnect;
finally
IdSMTP.Free;
end;
end;
我看到你在使用 Synapse 我不记得我用的是什么....它介于 indy、lnet 或 synapse 之间。如果您需要这些软件包,请告诉我,我已将它们保存在我的保管箱中 :) 还可以查看 THIS 网站,它是一个专门为 Laz 服务的网站.....很棒 ( ͡° ͜ʖ ͡°)
我刚接触 Lazarus 几个月。我一直在尝试创建一个小的 FTP 程序,它将在登录后发送一个小文件。我已经完成了所有粘糊糊的事情,我唯一关心的是 FTP 部分。我遇到了很多错误,我一直在努力安装正确的软件包
我的 FTP 代码如下所示
function TModel.Send(LocalFile : string; remoteFile : string; RemoteDir : string) : boolean;
//===========================================================================
// **********************************************************************
// * Send a file to the FTP server *
// **********************************************************************
//---------------------------------------------------------------------------
var
rc : boolean;
begin
// Create the FTP Client object and set the FTP parameters
FTPClient := TFTPSend.Create;
with FTPClient do begin
TargetPort := cFtpProtocol;
TargetHost := fHost; // these were properties set somewhere else
UserName := fUserID;
Password := fPassword;
//-----------------------------------------------------------------------
// bail out if the FTP connect fails
if not LogIn then exit;
//------------------------------------------------------------------------
// Set filename to FTP
DirectFileName := LocalFile;
DirectFile := True;
//------------------------------------------------------------------------
// change directory if requested
if RemoteDir <> '' then ChangeWorkingDir(RemoteDir);
//------------------------------------------------------------------------
// STOR file to FTP server.
rc := StoreFile(RemoteFile,false);
//------------------------------------------------------------------------
// close the connection
LogOut;
//------------------------------------------------------------------------
// free the FTP client object
free;
//------------------------------------------------------------------------
end;
Result := rc;
//===========================================================================
end;
感谢您的帮助。
噢,拉撒路 XD。我不确定是否有任何简单的方法。前段时间我尝试做类似的事情,但我没有抽出时间完成它……但我确实让 FTP 开始工作,看看下面的代码
begin
IdSMTP := TIdSMTP.Create(nil);
try
IdSMTP.Host := 'smtp.jonas.com';
IdSMTP.Port := 587;
IdSMTP.AuthType := satDefault;
IdSMTP.Username := 'server@jonas.com';
IdSMTP.Password := 'TeCat#!';
IdSMTP.Connect;
if IdSMTP.Authenticate then;
begin
IdMessage := TIdMessage.Create(nil);
try
IdMessage.From.Name := 'Jonas Server';
IdMessage.From.Address := 'server@jonas.com';
IdMessage.Subject := subject;
IdMessage.Body.AddStrings(message);
IdEmailAddressItem := IdMessage.Recipients.Add;
IdEmailAddressItem.Address := 'server@jonas.com';
IdSMTP.Send(IdMessage);
finally
IdMessage.Free;
end;
end;
IdSMTP.Disconnect;
finally
IdSMTP.Free;
end;
end;
我看到你在使用 Synapse 我不记得我用的是什么....它介于 indy、lnet 或 synapse 之间。如果您需要这些软件包,请告诉我,我已将它们保存在我的保管箱中 :) 还可以查看 THIS 网站,它是一个专门为 Laz 服务的网站.....很棒 ( ͡° ͜ʖ ͡°)