2016-04-21 18 views
3

Я пару месяцев новичок в Lazarus. Я пытаюсь создать небольшую FTP-программу, которая отправит небольшой файл после входа в систему. У меня есть все вещи для gooey, и моя единственная проблема - часть FTP. Я получаю кучу ошибок, и я изо всех сил, чтобы установить правильные пакетыЕсть ли простой способ использовать функцию FTP в коде Lazarus

Мой 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; 

Спасибо за вашу помощь.

ответ

3

Oh Lazarus XD. Я не уверен, есть ли какой-нибудь простой способ. Я пытался сделать что-то подобное, некоторое время назад, но я не обходить стороной к завершению его, хотя .... Но я действительно получил FTP работать, посмотрите на мой код ниже

begin 
    IdSMTP := TIdSMTP.Create(nil); 
    try 
    IdSMTP.Host := 'smtp.jonas.com'; 
    IdSMTP.Port := 587; 
    IdSMTP.AuthType := satDefault; 
    IdSMTP.Username := '[email protected]'; 
    IdSMTP.Password := 'TeCat#!'; 
    IdSMTP.Connect; 
    if IdSMTP.Authenticate then; 
    begin 
     IdMessage := TIdMessage.Create(nil); 
     try 
     IdMessage.From.Name := 'Jonas Server'; 
     IdMessage.From.Address := '[email protected]'; 
     IdMessage.Subject := subject; 
     IdMessage.Body.AddStrings(message); 
     IdEmailAddressItem := IdMessage.Recipients.Add; 
     IdEmailAddressItem.Address := '[email protected]'; 

     IdSMTP.Send(IdMessage); 
     finally 
     IdMessage.Free; 
     end; 
    end; 
    IdSMTP.Disconnect; 
    finally 
    IdSMTP.Free; 
    end; 
end; 

Я вижу, что вы используя Synapse Я не могу вспомнить, что я использовал ... Это между indy, lnet или синапсом. Просто дайте мне знать, если вам нужны эти пакеты, я их сохранил на моем Dropbox :) также проверьте сайт THIS, это целый сайт, посвященный Laz ..... GREAT (͡ ° ͡ °)

+2

Спасибо за код –

Смежные вопросы