2016-04-21 11 views
3

zu verwenden Ich bin ein paar Monate neu bei Lazarus. Ich habe versucht, ein kleines FTP-Programm zu erstellen, das eine kleine Datei nach der Anmeldung senden wird. Ich habe alle klebrigen Sachen getan, und meine einzige Sorge ist der FTP-Teil. Ich bin eine ganze Menge Fehler bekommen, und ich habeGibt es eine einfache Möglichkeit, die FTP-Funktion in Lazarus Code

Mein FTP Code wie folgt

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; 

Danke für Ihre Hilfe sucht die richtigen Pakete zu installieren, zu kämpfen.

Antwort

3

Oh Lazarus XD. Ich bin mir nicht sicher, ob es einen leichten Weg gibt. Ich habe versucht, etwas Ähnliches vor einiger Zeit zu tun, aber ich habe Runde nicht daran, obwohl Finishing .... Aber ich habe den FTP erhalten Sie einen Blick auf mein Code zu arbeiten, nehmen unter

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; 

Ich sehe, Sie sind mit Synapse kann ich mich nicht erinnern, was ich benutzt habe .... Es ist zwischen Indy, Net oder Synapse. Lass es mich wissen, wenn Sie diese Pakete brauchen, habe ich sie auf meiner Dropbox gespeichert :) auch auf THIS Website ist es eine ganze Website gewidmet Laz ..... Großartig (0 °)

+2

Vielen Dank für die Code –