AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Problem mit IdFTP1.Put
Thema durchsuchen
Ansicht
Themen-Optionen

Problem mit IdFTP1.Put

Ein Thema von Evalon · begonnen am 6. Aug 2009 · letzter Beitrag vom 13. Nov 2009
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#11

Re: Problem mit IdFTP1.Put

  Alt 3. Nov 2009, 12:49
Zitat von Assertor:
Nur soviel, bevor ein anderer das liest und wieder denkt "wußte ich es doch, Indy 10 hat Probleme": Nein, der FTP Transfer ist wirklich die Pflicht für Indy - also eine Aufgabe die regelmäßig genutzt und kontrolliert wird.

Gruß Assertor
aha ... also nehmen wir jetzt mal Indy10 (v10.5.5 so wie bei Delphi 2010 dabei)
holen uns die Demo FTP-Client aus dem SVN
compilieren und schon geht das.

Tatsache, da tut sich was ...

Server: ftp.lancom.de
User: ftp
Pass: ftp

und bei Connect kommt "Illegal PORT Command!"

ah, ja ...

Welches Zauberwort braucht denn der Client, damit der auch mal anzeigt, was da so ist?

cu

Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#12

Re: Problem mit IdFTP1.Put

  Alt 3. Nov 2009, 13:56
Hi Oliver,

Zitat von Sir Rufo:
Zitat von Assertor:
Nur soviel, bevor ein anderer das liest und wieder denkt "wußte ich es doch, Indy 10 hat Probleme": Nein, der FTP Transfer ist wirklich die Pflicht für Indy - also eine Aufgabe die regelmäßig genutzt und kontrolliert wird.

Gruß Assertor
aha ... also nehmen wir jetzt mal Indy10 (v10.5.5 so wie bei Delphi 2010 dabei)
holen uns die Demo FTP-Client aus dem SVN
compilieren und schon geht das.
Ich weiß nicht, was das aha soll - aber die Demos sind nicht aktuell, das ist auch kein Geheimnis. Im SVN Log sieht man das, irgendwann 2005 von Jörg Meier reingestellt und 2008 von Olaf Monien verschoben (als er noch dabei war).

In D2009 und D2010 steht das ja z.B. auch im Demo-Ordner "Indy v9 Demos" - und nichts ist enthalten, trotzdem kommen die wenigsten auf die Idee irgendwas von Indy 9 mit D2009+ auszuprobieren. Aber egal wie oft man es Embarcadero sagt, das lustige Textfile bleibt drin

Den Rest deines Posts verstehe ich nicht, zu viel Ironie ohne den Smiley. Aber wenn Du eine konkrete Frage hast: Immer her damit. Ein einfachen FTP Connect und das List Kommando bringen wir Dir auch noch bei (< da ist er)

Edit: Gerade mal den FTPClient aus dem Demos getestet. Mein Debugger bringt mir sofort Fehlermeldungen, das Properties nicht (mehr) exisitieren - selbst mit D2009. Sollte also klar sein, daß dies nicht ohne Änderungen funktionieren kann.

Und: Die D2010 Version ist nicht automatisch die Version aus dem SVN. Embarcadero nimmt eigene Anpassungen vor, leider ohne immer darüber zu benachrichtigen. Auch welche Build-Nummer aus dem SVN genommen wurde, wird nicht immer mitgeteilt. Das wird sich hoffentlich in Zukunft (weiter) bessern.

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

Re: Problem mit IdFTP1.Put

  Alt 3. Nov 2009, 14:12
sorry, für wegen die fehlenden

Der ftp-Server den ich ansprechen will ist erreichbar, mit den Login-Daten beschreibbar, also eigentlich voll erreichbar.

Der Login funktioniert, der Upload startet und dann kommt die Fehlermeldung "Connection closed; transfer aborted"

Wie schon gesagt: Delphi 2010, Indy 10.5.5 (die wo direkt mit Delphi 2010 geliefert werden )

Hier der Code aus dem Formular, der Rest vom Projekt ist im Anhang.

Delphi-Quellcode:
unit frmMain;

interface

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

type
  TForm1 = class( TForm )
    Host : TEdit;
    Port : TEdit;
    Username : TEdit;
    Password : TEdit;
    Passive : TCheckBox;
    Button1 : TButton;
    IdFTP1 : TIdFTP;
    procedure Button1Click( Sender : TObject );

  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1 : TForm1;

implementation

{$R *.dfm}

uses
  idFtpCommon;

procedure TForm1.Button1Click( Sender : TObject );
  begin
    // Einstellungen lesen
    IdFTP1.Host := Host.Text;
    IdFTP1.Port := StrToIntDef( Port.Text, 21 );
    IdFTP1.Username := Username.Text;
    IdFTP1.Password := Password.Text;
    IdFTP1.Passive := Passive.Checked;
    IdFTP1.AutoLogin := False;

    IdFTP1.Connect;
    try
      IdFTP1.Login;
      IdFTP1.TransferType := ftBinary;
      if FileExists( '.\Dokument.txt' ) then
        IdFTP1.Put( '.\Dokument.txt', 'Dokument.txt', False );
    finally
      IdFTP1.Disconnect;
    end;

  end;

end.
Angehängte Dateien
Dateityp: zip indyftp_761.zip (513,5 KB, 10x aufgerufen)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#14

Re: Problem mit IdFTP1.Put

  Alt 3. Nov 2009, 14:18
Hi,

Zitat von Sir Rufo:
sorry, für wegen die fehlenden

[...]

Wie schon gesagt: Delphi 2010, Indy 10.5.5 (die wo direkt mit Delphi 2010 geliefert werden )
Ok

Ich sehe mir Dein Demo jetzt sofort an und gebe gleich Feedback.

Aber was ist das für eine Demo?
Zitat von Sir Rufo:
aha ... also nehmen wir jetzt mal Indy10 (v10.5.5 so wie bei Delphi 2010 dabei)
holen uns die Demo FTP-Client aus dem SVN
compilieren und schon geht das.

Tatsache, da tut sich was ...
Wie hast Du das bitte ohne Änderungen kompiliert? Die Indy10Demo vom SVN läuft zu 100% nicht ungeändert mit Delphi 2009 und 2010 - da sind zu viele geänderte Properties und Methodenparameter.

Hast Du D2010+ mit dem Pre--Compiler?

Edit: Feedback. Deine (eigene) Demo mit aktuellen SVN kompiliert - und ich bekomme keine Fehlermeldung (und hab von sowas auch noch nicht gehört). Halt mich auf dem Laufenden

Gruß Assertor
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

Re: Problem mit IdFTP1.Put

  Alt 3. Nov 2009, 20:54
Ok, jetzt habe ich ftp mit Passive laufen ...

... jetzt funktioniert es ... aber ...

... nur wenn der ftp-server auf Port 21 sitzt.

Ich habe die ganze Zeit mit einem ftp-server auf einem anderen Port (22222) getestet.
Jetzt tut das sogar mit den Delphi-Beipack-Indys.

Seltsam ist es schon ... aber soweit klappert es ja jetzt, dann eben nur Standard

cu

Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#16

Re: Problem mit IdFTP1.Put

  Alt 3. Nov 2009, 21:00
warum speicherst du die Daten erst auf der Festplatte anstelle sie direkt hoch zu laden? Werden diese lokal auf der Festplatte wirklich benötigt?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#17

Re: Problem mit IdFTP1.Put

  Alt 3. Nov 2009, 21:02
Zitat von SirThornberry:
warum speicherst du die Daten erst auf der Festplatte anstelle sie direkt hoch zu laden? Werden diese lokal auf der Festplatte wirklich benötigt?
Das war eigentlich mein geringstes Problem

Das Projekt oben war doch nur ein Test-Projekt ... die richtige Anwendung wird das aus einem Stream pumpen

cu

Oliver
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#18

Re: Problem mit IdFTP1.Put

  Alt 13. Nov 2009, 14:34
Hi,

Zitat von Sir Rufo:
Ok, jetzt habe ich ftp mit Passive laufen ...

... jetzt funktioniert es ... aber ...

... nur wenn der ftp-server auf Port 21 sitzt.

Ich habe die ganze Zeit mit einem ftp-server auf einem anderen Port (22222) getestet.
Jetzt tut das sogar mit den Delphi-Beipack-Indys.

Seltsam ist es schon ... aber soweit klappert es ja jetzt, dann eben nur Standard
So, Sir Rufo und ich haben das gerade mal debuggt. Ergebnis bisher: Es geht sehr wohl auch auf 22222 (getestet mir FileZilla Server und verschiedenen Indy Versionen), nur leider sendet Sir Rufos MS IIS FTP Server aus irgendeinem nicht ersichtlichen Grund Indy & anderen Clients die interne IP des Servers im Passiv-Modus. Da scheint es ein Problem mit dem FTP Server von MS und / oder Sir Rufo's Router zu geben.

Selbst wenn jetzt die externe IP genommen wird, schlägt auf seiner Seite die NAT fehl und die Ports werden nicht geöffnet... Für das Problem selbst finden sich viele Einträge zu MS IIS FTP und dem Router, aber kein einziger Report bisher zu Indy.

Ergo: Nicht alles, was nicht geht, liegt an Indy

Gruß Assertor

Tags: Indy, 500, Illegal Port Command, NAT, Router, FTP
Frederik
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz