Entwickler-Ecke

Internet / Netzwerk - idFTP Verbindungsfehler


Dude566 - Di 17.02.09 17:50
Titel: idFTP Verbindungsfehler
Also, ich habe eben mal schnell ein Programm geschrieben, mit dem eine Datei auf meinen FTP hochgeladen wird.

Jetzt kommt aber diese Fehlermeldung:
user defined image

Und wenn ich nachschaue wurde die Datei auch nicht übertragen.

Frage: Woran kann das liegen? Habe ich etwas vergessen oder falsch gemacht?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
procedure TForm1.Button1Click(Sender: TObject);
begin
  OpenDialog1.Execute;
  with idFTP1 do
    begin
    Username := 'musterlogin';
    Password := 'musterpw';
    Host := 'muster.host.de';
    Connect;
    IdFTP1.Put(OpenDialog1.FileName,
    ExtractFileName(OpenDialog1.FileName));
    Disconnect;
    end;
end;


Gruß Dude566


LexXis - Di 17.02.09 18:11

Versuch mal Put() erst in OnAfterClientLogin auszuführen.
Bis her schickst du dem FTP-Server ja deinen Login und schmeisst dann gleich die Datei hinterher. Lass ihn erstmal den Login fertig stellen und mach dann mit der restlichen Ausführung deines Programmes weiter.


Dude566 - Di 17.02.09 18:22

Wie meinst du das, wo muss das hin?


LexXis - Di 17.02.09 19:04

OnAfterClientLogin ist ein property von TidFTP. Das findest du im Object Inspector unter "Events" (je nach Sprache eben ;)). Darauf einfach doppelklicken und in der Procedure die damit im Code Editor hinzugefügt wurde dein Put() eintragen. :)


Dude566 - Di 17.02.09 23:46

Klappt leider trotzdem noch nicht, kann es vielleicht sein das der Server den Login durch mein Programm blockt?

PS: Ich habe einen FTP bei Kilu.de [http://www.kilu.de]


Xentar - Di 17.02.09 23:54

Kannst du dich denn mit einem normalen FTP Programm dahin verbinden?


Dude566 - Mi 18.02.09 00:04

Ja, ich kann über deren Homepage und FileZilla mit dem Server arbeiten.


Xentar - Mi 18.02.09 00:10

Musst du dafür irgendwas bestimmtes einstellen? Passivmodus, anderen Port oder sowas?

Die Fehlermeldung sieht so aus, als hättest du dich beim Benutzer / Passwort vertippt..


Dude566 - Mi 18.02.09 17:44

:oops: Es lag daran das ich den Loginnamen nicht im richtigen Format hatte.

Also eingeloggt bin ich jetzt und es kommt nicht mehr die Fehlermeldung, aber die Datei wird immer noch nicht hochgeladen.

Ich schaue nochmal weiter...

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
  IdTCPClient, IdFTP;

type
  TForm1 = class(TForm)
    IdFTP1: TIdFTP;
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure IdFTP1AfterClientLogin(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  OpenDialog1.Execute;
  with idFTP1 do
    begin
    Username := 'beispiel@1';
    Password := 'beispiel';
    Host := 'beispiel.kilu.de';
    Connect;
    end;


end;

procedure TForm1.IdFTP1AfterClientLogin(Sender: TObject);
begin
    IdFTP1.Put(OpenDialog1.FileName,
    ExtractFileName(OpenDialog1.FileName));
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  with idFTP1 do Disconnect;
end;

end.


Xentar - Mi 18.02.09 18:02

Hast du mal einen Haltepunkt gesetzt, ob der da überhaupt durchläuft, und ob OpenDialog1.FileName noch einen gültigen Wert enthält?


Dude566 - Mi 18.02.09 18:18

Was meinst du mit Haltepunkt?

Also ich habe getestet ob er überhaupt bis zum Uploaden kommt, er müsste es eigentlich machen denn die ShowMessage danach wird ausgeführt.

Habe das OpenDialog1.Execute jetzt auch in das OnAfterFTPLogin gemacht.


Dude566 - Do 19.02.09 18:09

Keiner mehr da der eine Idee hat?


matze - Do 19.02.09 18:16

Naja. Die Fehlermeldung deutet ja darauf hin, dass nicht die Verbindung fehlschlägt, sonder der Login.
Also entweder authentifiziert sich dein Tool nicht richtig am Server oder die Zugangsdaten sind falsch.
Oder (wie weiter oben auch schon vermutet) es hängt mit dem Passiv-Modus zusammen. Schnapp dir doch mal einen Packet-Sniffer á la Wireshark und schau direkt auf der Leitung was andere Programme anders machen als deins.


Dude566 - Do 19.02.09 18:29

Aber die Fehlermeldung mit dem Login, ist ja nicht mehr existent, es lädt das was es soll nur einfach nicht hoch.


matze - Fr 20.02.09 11:21

Ich versteh im Moment nicht mal, was nicht funktioniert...


GTA-Place - Fr 20.02.09 13:46

Hast du auf dem FTP-Server einen Spezialpfad wo die Dateien hinmüssen? html/ oder ähnliches?


Dude566 - Fr 20.02.09 14:01

Ich habe keinen speziellen Pfad angegeben, ich verbinde einfach nur und lade die Datei dann in das Root verzeichnis.

Also müsste es ja eigentlich machen wenn ich nichts anderes angebe.


Dude566 - Sa 21.02.09 16:54

Bitte lasst den Thread hier nicht in Vergessenheit geraten.

*PUSH* :wink2:


Xentar - Sa 21.02.09 17:44

user profile iconDude566 hat folgendes geschrieben Zum zitierten Posting springen:
Bitte lasst den Thread hier nicht in Vergessenheit geraten.

Du könntest auch einen neuen Thread aufmachen, da das Problem "Verbindungsfehler" ja erledigt ist..
Und da dann nochmal genau erklären, was nun das Problem ist, und was du schon probiert hast. Ich steig da nämlich nicht mehr durch, was nun noch aktuell ist ;)


Dude566 - Sa 21.02.09 18:46

Ok mache ich, dachte das wäre nicht nötig.


Dude566 - Mi 25.02.09 19:29

Bisher hat sich noch nichts getan.

http://www.delphiforum.de/topic_90412.html