gpt4 book ai didi

windows - 有没有什么简单的方法可以在Lazarus代码中使用FTP功能

转载 作者:可可西里 更新时间:2023-11-01 09:23:47 25 4
gpt4 key购买 nike

我刚接触 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 的整个网站.....很棒 ( ͡° ͜ʖ ͡°)

关于windows - 有没有什么简单的方法可以在Lazarus代码中使用FTP功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36763930/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com