我对拉撒路新建了几个月。我一直在尝试创建一个小的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;
感谢您的帮助。
答案 0 :(得分:3)
哦Lazarus 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之间。如果你需要这些包我告诉我,我把它们保存在我的Dropbox上:)同时查看THIS网站这是一个专门用于Laz的网站..... GREAT(͡°͜ʖ͡°)