![]() |
Übertragung Txt-file an ftp ... denkfehler!!!???
auch diesmal hoffe ich wieder, dass mir geholfen werden kann. dazu muss ich sagen, dass ich das zum ersten mal mache und demnach sehr wenig ahnung davon habe :(
ich möchte eine txt-datei an einen ftp-server schicken und dachte mir ich mach das über die indykomponente IdFTP. folgende einstellungen: auf dem ftp ein ordner, zugriff mit user und passwort... verbindung wird hergestellt, allerdings greift er nicht auf diesen ordner zu. gesendet wird also auch nichts... außerdem verstehe ich nicht so recht, wann das execute-ereignis des servers ausgelöst wird :gruebel: diesen quelltext hab ich mir dafür gezogen:
Delphi-Quellcode:
....
with Idftp1 do begin fs := TFileStream.Create('c:\trainprog\train.txt', fmOpenRead or fmShareDenyWrite); //Datei in FileStream einlesen Connect; //und Verbindung herstellen try OpenWriteBuffer; //stellt sicher, dass alle Daten versendet werden try WriteStream(fs, true, true, 0); //das 2. true ist wichtig!, da es bewirkt, dass die Größe des Streams mittels WriteInteger zuerst verschickt wird CloseWriteBuffer; except CancelWriteBuffer; raise; end; finally fs.Free; end; end; end;
Delphi-Quellcode:
liebe grüße,
procedure TFormMain.IdFTPServer1Execute(AThread: TIdPeerThread);
var fs : TFileStream; SizeOfIncomingStream : integer; begin fs := TFileStream.Create('train.txt', fmCreate or fmShareExclusive); with AThread.Connection do try SizeOfIncomingStream := ReadInteger; //Größe des Streams empfangen ReadStream(fs, SizeOfIncomingStream); //und übergeben finally Disconnect; fs.Free; end; end; claudia [edit=Luckie]Delphi-Tags eingefügt. Beim nächsten Mal bitte selber machen. Danke. Mfg, Luckie[/edit] |
Re: Übertragung Txt-file an ftp ... denkfehler!!!???
also dafür brauchst du den ftp client nicht den server! das server execute ereignis wird dann ausgeführt, wenn du irgendwas vom client aus hinschickst - seis ein stream, string oder sonst was! (afaik)
|
Re: Übertragung Txt-file an ftp ... denkfehler!!!???
ich habe jeweils die komponente des clients und des servers verwendet...
ich blick leider überhaupt nicht durch, weshalb ich hier dringend hilfe suche!!! |
Re: Übertragung Txt-file an ftp ... denkfehler!!!???
willst du dich mit einem bestehenden server verbinden, also z.b. deinem webspaceprovider, oder willst du selbst einen ftp server basteln? für ersteren fall, den du warscheinlich brauchst, musst du nur die indy ftp client kompo verwenden!
|
Re: Übertragung Txt-file an ftp ... denkfehler!!!???
Hi,
hier ein kleines Beispiel was alle Deine Fragen beantworten sollte :
Code:
Außerdem ist noch wichtig, das Du die Komponente IdAntifreeze Komponente aus dem Register Indy-Misc auf die Form setzt, dabei bei längeren Operationen die Form nicht einfriert.
procedure TForm1.cmdGoClick(Sender: TObject);
begin // Sicher gehen, das neu connected wird IdFTP1.Disconnect; // Verbindungsdaten setzen IdFTP1.Host := 'www.telwell.de'; IdFTP1.Passive := false; // = true für passiven FTP-Transfer IdFTP1.Username := 'testuser'; IdFTP1.Password := 'testpwd'; // Alle Verbindungsdaten vorhanden jetzt versuchen zu verbinden try IdFTP1.Connect(true,5000); // Es wird 5 Sek. auf die FTP-Verbindung gewartet if IdFTP1.Connected then begin // sind wir schon im richtigen Verzeichis des Servers ? Hängt von den Userrechten auf dem SErver ab // wenn nötig Verzeichnis wechseln IdFTP1.ChangeDir('test'); // Wie soll die Datei übertragen werden ? im AScii Format oder Binear // IdFTP1.TransferType := ftASCII; bei Textdateien verwenden IdFTP1.TransferType := ftBinary; // Datei jetzt hochladen IdFtp1.Put('C:\Autoexec.bat','AufDemServer.bat'); // Eine Datei downloaden mit get !! end; except raise; // Exception warum die Verbing fehlschlug ausgeben end; end; Gruß Data |
Re: Übertragung Txt-file an ftp ... denkfehler!!!???
also erstmal vielen danke für die hilfe...
es funktioniert beinahe... ich komm nun auf den server und auch ins das richtige verzeichnis. nur die datei wird immer noch nicht übertragen... fehlermeldung "zeitüberschreitung bei verbindung"... da hab ich passive von true auf false gesetzt... dann kam fehlermeldung "STOU, command is not yet implemented" was soll "stou" sein ??? und was genau läuft nun wieder falsch :?: liebe grüße, claudia |
Re: Übertragung Txt-file an ftp ... denkfehler!!!???
STOU steht für unique-named store, sprich: der Client will eine Datei speichern, der Name soll aber durch den Server festgelegt werden, unter Berücksichtigung, dass es diese Datei noch nicht gibt bzw. keine bestehende überschrieben werden soll... (unique-named: einmaliger Dateiname).
TidFTP verwendet diesen Befehl, anstelle dem normalen STOR, wenn der 2. Parameter von Put() ein leerer String enthält, oder ganz weggelassen wurde..... und dort dürfte auch der Hund begraben liegen... |
Re: Übertragung Txt-file an ftp ... denkfehler!!!???
:bounce1:
super... riesen dankeschön an euch... es funktioniert!!! :thuimb: bis irgendwann mal vielleicht :mrgreen: bye bye |
Re: Übertragung Txt-file an ftp ... denkfehler!!!???
Ich habe jetzt auch mal den beispiel-Quelltext verwendet. Bei IdFTP1.TransferType := ftBinary; bekomme ich beim compilieren aber immer die Fehlermeldung "Undefinierter Bezeichner: 'ftBinary'"
Woran kann das liegen? |
Re: Übertragung Txt-file an ftp ... denkfehler!!!???
diese fehlermeldung kam bei mir auch... aber da ich textdateien versende nehme ich sowieso ftASCII.
du kannst den transfertype auch direkt in der komponente hinterlegen und dann dürfte das problem behoben sein. geht natürlich nur, wenn der transfertype gleich bleibt und du ihn nicht wechseln willst. liebe grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:22 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