![]() |
Problem mit IdFTP1.Put
Hallo,
ich möchte ein Programm schreiben mit welchem ich in einem Memo-Feld einen Text schreibe, diesen als html speichere und dann auf den FTP-Server hochladen kann. Dafür benutze ich die Indy FTP-Komponente (IdFTP). Quelltext:
Delphi-Quellcode:
Wenn ich jetzt aber das Programm starte und Button1 klicke, friert das Programm ein und es tut sich nichts mehr. Kann mir jemand helfen woran das liegen könnte?
procedure TForm1.Button1Click(Sender: TObject);
begin ftp.Host:='**************'; ftp.Username:='*****'; ftp.Password:='******'; ftp.Connect; Memo1.Lines.SaveToFile(Programmpfad+'abc.html'); ftp.Put(Programmpfad+'abc.html','abc.html',true); end; Vielen Dank schonmal, Evalon |
Re: Problem mit IdFTP1.Put
Zitat:
|
Re: Problem mit IdFTP1.Put
Das Programm friert beim Put ein, mit Filezilla klappt alles einwandfrei und die Datei wird korrekt gespeichert. Was auch seltsam ist: beim letzten Versuch (ohne etwas geändert zu haben) bekam ich die Fehlermeldung "Im Projekt Projekt1.exe ist eine Exception der Klasse EIdProtocolReplyError aufgetreten. Meldung: 'abc.html: Append/Restart not permitted, try again'. Prozess wurde angehalten. [...]".
Das Mal davor ging das mit dem Hochladen und ich bekam einen Fehler mit "Listenindex überschreitet Maximum". Warum passiert da teils etwas anderes obwohl ich nichts am Quelltext ändere? |
Re: Problem mit IdFTP1.Put
Zitat:
Ist es die aktuelle Indy Version (10.5.6)? Im FTP Bereich hat sich da in den letzten Jahren noch so manches getan. Viele Grüße, |
Re: Problem mit IdFTP1.Put
Juchuu vielen Dank :-D
Ich habe mir jetzt Indy 9 runtergeladen (neuste Stable) und siehe da: es funktioniert :) Danke für die schnelle Hilfe, Gruß Evalon |
Re: Problem mit IdFTP1.Put
Zitat:
Nun, wenn es damit tatsächlich funktioniert ... ;) |
Re: Problem mit IdFTP1.Put
Hi,
Zitat:
Aber mit so wenig Informationen, kann man leider nicht sinnvoll helfen. 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 |
Re: Problem mit IdFTP1.Put
@ mjustin: Ja die von 2004 aber es funktioniert. Hast du einen Downloadlink für 10.5.6 ? Auf der HP von
![]() |
Re: Problem mit IdFTP1.Put
Hi,
Zitat:
![]() Von dort bitte die IndyTiburon.zip laden. Die Homepage ist noch in Arbeit, aber da es keine weiteren Helfer gibt, wird das noch dauern... Gruß Assertor |
Re: Problem mit IdFTP1.Put
Ok super vielen Dank :-D
Gruß Evalon |
Re: Problem mit IdFTP1.Put
Zitat:
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 |
Re: Problem mit IdFTP1.Put
Hi Oliver,
Zitat:
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 :mrgreen: 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 :mrgreen: (< 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 |
Re: Problem mit IdFTP1.Put
Liste der Anhänge anzeigen (Anzahl: 1)
sorry, für wegen die fehlenden :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen: :mrgreen:
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 :mrgreen: ) 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. |
Re: Problem mit IdFTP1.Put
Hi,
Zitat:
Ich sehe mir Dein Demo jetzt sofort an und gebe gleich Feedback. Aber was ist das für eine Demo? Zitat:
Hast Du D2010+ mit dem Pre-:glaskugel:-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 |
Re: Problem mit IdFTP1.Put
Ok, jetzt habe ich ftp mit Passive laufen ...
... jetzt funktioniert es ... aber ... ... nur wenn der ftp-server auf Port 21 sitzt. :wall: 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 :mrgreen: cu Oliver |
Re: Problem mit IdFTP1.Put
warum speicherst du die Daten erst auf der Festplatte anstelle sie direkt hoch zu laden? Werden diese lokal auf der Festplatte wirklich benötigt?
|
Re: Problem mit IdFTP1.Put
Zitat:
Das Projekt oben war doch nur ein Test-Projekt ... die richtige Anwendung wird das aus einem Stream pumpen ;) cu Oliver |
Re: Problem mit IdFTP1.Put
Hi,
Zitat:
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 :mrgreen: Gruß Assertor Tags: Indy, 500, Illegal Port Command, NAT, Router, FTP |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz