Windows 在Lazarus代码中有没有简单的方法来使用FTP函数
我是拉撒路的新手。我一直在尝试创建一个小的FTP程序,它会在登录后发送一个小文件。我已经做了所有的胶粘的东西,我唯一关心的是FTP部分。我遇到了很多错误,我一直在努力安装正确的软件包 我的FTP代码如下所示Windows 在Lazarus代码中有没有简单的方法来使用FTP函数,windows,ftp,lazarus,Windows,Ftp,Lazarus,我是拉撒路的新手。我一直在尝试创建一个小的FTP程序,它会在登录后发送一个小文件。我已经做了所有的胶粘的东西,我唯一关心的是FTP部分。我遇到了很多错误,我一直在努力安装正确的软件包 我的FTP代码如下所示 function TModel.Send(LocalFile : string; remoteFile : string; RemoteDir : string) : boolean; //===================================================
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;
函数TModel.Send(LocalFile:string;remoteFile:string;RemoteDir:string):布尔;
//===========================================================================
// **********************************************************************
//*向FTP服务器发送文件*
// **********************************************************************
//---------------------------------------------------------------------------
变量
rc:布尔型;
开始
//创建FTP客户端对象并设置FTP参数
FTPClient:=TFTPSend.Create;
使用FTPClient do begin
TargetPort:=cFtpProtocol;
TargetHost:=fHost;//这些是其他地方设置的属性
用户名:=fUserID;
密码:=fPassword;
//-----------------------------------------------------------------------
//如果FTP连接失败,请退出
如果未登录,则退出;
//------------------------------------------------------------------------
//将文件名设置为FTP
DirectFileName:=本地文件;
DirectFile:=True;
//------------------------------------------------------------------------
//如果请求,请更改目录
如果为RemoteDir“”,则更改工作目录(RemoteDir);
//------------------------------------------------------------------------
//将STOR文件发送到FTP服务器。
rc:=StoreFile(RemoteFile,false);
//------------------------------------------------------------------------
//关闭连接
注销;
//------------------------------------------------------------------------
//释放FTP客户端对象
自由的
//------------------------------------------------------------------------
结束;
结果:=rc;
//===========================================================================
结束;
谢谢你的帮助 哦,拉扎勒斯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我不记得我用了什么。。。。它位于印地、lnet或突触之间。如果您需要这些软件包,请告诉我,我已将它们保存在我的dropbox中:)也请查看网站这是一个专门为Laz开发的完整网站……太棒了(°↝ʖ͡°)