AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Indy FTP Exception

Ein Thema von RobertS · begonnen am 28. Jun 2003 · letzter Beitrag vom 29. Jun 2003
Antwort Antwort
RobertS
(Gast)

n/a Beiträge
 
#1

Indy FTP Exception

  Alt 28. Jun 2003, 10:49
Morgen!

Habe gerade ein dickes Problem, und zwar ich lege ich mit meinem Programm verschiedene Ordner auf einem FTP an.
Das Verzeichnis wird auch angelegt doch leider kommt dann eine Fehlermeldung "Directory Created" und das Programm stürzt ab..

Woran liegt das muss ich noch irgendetwas übergeben bzw. etwas einstellen??

Hier mein Code..

Code:
...
  ftp.Connect();
if ftp.Connected then begin
 ftp.ChangeDir('/gallery');
 ftp.TransferType:= ftBinary;
 try
  ftp.MakeDir(ng_2.galleryname.Caption);
 except
  showmessage('-');
 end;
 c_makefolder.Checked:=True;
 ftp.ChangeDir('/gallery/'+ng_2.galleryname.Caption);
 try
  ftp.MakeDir('thumbs');
 except
  showmessage('-');
 end;
end;
....
Danke im voraus...
mfg Robert
  Mit Zitat antworten Zitat
RobertS
(Gast)

n/a Beiträge
 
#2
  Alt 28. Jun 2003, 11:24
Nachtrag:

Ich habe das Programm mal mit andern FTP Daten gestartet (Schlund+Partner FTP) das funktioniert alles reibungslos!

Doch auf dem andern (Strato FTP) kommt diese Meldung
Liegt also nicht an mir

Hat damit schon jemand Erfahrungen?

Danke im Voraus!
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#3
  Alt 28. Jun 2003, 12:01
Welche Fehlermeldung kommt denn ?
Hilfreich wäre ein Protokollausschnitt mit den Server Meldungen.

Manche FTP Komponenten parsen das FTP Protokoll nicht richtig.
Zusätzlich entstehen Probleme mit verschiedenen FTP Servern.
In Deinem Falle z.B. kann es sein das ein Useraccount zwar Ordner anlegen darf, dieser neue Ordner aber dann keine Zugriffsrechte erbt.
Anlegen ist also möglich, Zugriff aber nicht !

Gruß Hagen
  Mit Zitat antworten Zitat
RobertS
(Gast)

n/a Beiträge
 
#4
  Alt 29. Jun 2003, 14:33
Die meiner Meinung nach schwachsinne Fehlermeldung lautet:

Directory created
  Mit Zitat antworten Zitat
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#5
  Alt 29. Jun 2003, 15:09
Hm, der FTP-Returncode wäre hilfreicher.
Es müsste aber ein 2xx Code sein, und diese sind keine Fehlercodes sondern Bestätigungscodes das der Server die Aktion erfolgreich ausgeführt hat.

Es sieht wohl so aus das der FTP Server eine zusätzliche Message nachschickt, und deine FTP Komponente damit nicht korrekt umgehen kann.

Falls es die aus dem INDY Package ist dann kann ich bestätigen das diese teilweise nicht korrekt parsed.

es müsste

257 Directory created

sein. Verschiedene Server schicken zusätzliche Infos mit, etwa so

257-"PATHNAME" created
257 Directory created

Genau hier haben aber einige Komponenten Probleme, da sie das FTP Protokoll viel zu starr und unflexibel parsen.
Ich habe einige FTP Komponenten getestet und mich letzendlich für zwei Wege entschieden:
1.) auf Palms und Windows per Sockets selber das FTP Protokoll umgesetzt, ist eigentlich nicht so schwierig
2.) auf Windows die FTPxxxx Funktionien benutzt

Nun, es spricht auf Server Seite aber nichts dagegen einen eigenen Messagecode zu benutzen. Solange er im Bereich von 200-299 liegt, heisst das der Befehl ausgeführt wurde. Die Probleme mit den FTP Komponenten entstehen aber genau in diesem Moment. Sie parsen auf einen festen Returncode, z.b. eben 257, statt zu checken ob der Code zwichen 200-299 liegt. Diese "Fehlinterpretation" des FTP protokolls entsteht durch die Protokolldefinition in den RFC's selber. Dort sind eine Art von Beispielstruktogrammen abgebildet die dazu führen das man annehmen muß das exakt 257 vom Server als Bestätigung geschickt werden muß.
Ich habe einige FTP Sourcen studiert und alle gehen von dieser falschen Annahme aus.

Falls deine FTP Komponente den geparsten Returncode zwischenspeichert, und dann erst die Exception raised, kannste ja im SEH diesen Code selber auswerten. Falls er zwischen 200-299 liegt ist alles ok.

Gruß Hagen
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:53 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