AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Übertragung Txt-file an ftp ... denkfehler!!!???
Thema durchsuchen
Ansicht
Themen-Optionen

Übertragung Txt-file an ftp ... denkfehler!!!???

Ein Thema von cs_ii · begonnen am 18. Mär 2004 · letzter Beitrag vom 18. Aug 2004
Antwort Antwort
Seite 1 von 2  1 2      
cs_ii

Registriert seit: 9. Mär 2004
Ort: ilmenau
16 Beiträge
 
#1

Übertragung Txt-file an ftp ... denkfehler!!!???

  Alt 18. Mär 2004, 19:48
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

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:
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;
liebe grüße,
claudia

[edit=Luckie]Delphi-Tags eingefügt. Beim nächsten Mal bitte selber machen. Danke. Mfg, Luckie[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Übertragung Txt-file an ftp ... denkfehler!!!???

  Alt 19. Mär 2004, 13:35
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)
  Mit Zitat antworten Zitat
cs_ii

Registriert seit: 9. Mär 2004
Ort: ilmenau
16 Beiträge
 
#3

Re: Übertragung Txt-file an ftp ... denkfehler!!!???

  Alt 19. Mär 2004, 15:47
ich habe jeweils die komponente des clients und des servers verwendet...

ich blick leider überhaupt nicht durch, weshalb ich hier dringend hilfe suche!!!
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#4

Re: Übertragung Txt-file an ftp ... denkfehler!!!???

  Alt 19. Mär 2004, 18:31
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!
  Mit Zitat antworten Zitat
Benutzerbild von DataCool
DataCool

Registriert seit: 10. Feb 2003
Ort: Lingen
909 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Übertragung Txt-file an ftp ... denkfehler!!!???

  Alt 20. Mär 2004, 20:35
Hi,

hier ein kleines Beispiel was alle Deine Fragen beantworten sollte :

Code:
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;
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.

Gruß

Data
Der Horizont vieler Menschen ist ein Kreis mit Radius Null, und das nennen sie ihren Standpunkt.
  Mit Zitat antworten Zitat
cs_ii

Registriert seit: 9. Mär 2004
Ort: ilmenau
16 Beiträge
 
#6

Re: Übertragung Txt-file an ftp ... denkfehler!!!???

  Alt 21. Mär 2004, 10:04
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
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#7

Re: Übertragung Txt-file an ftp ... denkfehler!!!???

  Alt 21. Mär 2004, 10:45
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...
  Mit Zitat antworten Zitat
cs_ii

Registriert seit: 9. Mär 2004
Ort: ilmenau
16 Beiträge
 
#8

Re: Übertragung Txt-file an ftp ... denkfehler!!!???

  Alt 21. Mär 2004, 12:38


super... riesen dankeschön an euch... es funktioniert!!!

bis irgendwann mal vielleicht
bye bye
  Mit Zitat antworten Zitat
Benutzerbild von marc.beeh
marc.beeh

Registriert seit: 16. Dez 2003
Ort: Rodgau
47 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Übertragung Txt-file an ftp ... denkfehler!!!???

  Alt 23. Mär 2004, 14:14
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?
If there isn´t what you need, develop it...
(Und dazu brauche ich jetzt eure Hilfe! )
  Mit Zitat antworten Zitat
cs_ii

Registriert seit: 9. Mär 2004
Ort: ilmenau
16 Beiträge
 
#10

Re: Übertragung Txt-file an ftp ... denkfehler!!!???

  Alt 23. Mär 2004, 14:25
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 18:38 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