TIdFTP (User/Password)
-
Hallo zusammen!
Ich versuche mich zu verschiedenen FTP-Servern zu verbinden und verwende dazu die TIdFTP Komponente.
Zu Servern ohne Passwort klappt auch alles ohne Probleme.Jetzt bei dem MIT Zugangsdaten...geht nichts. Im Browser kein Problem "ftp://root:root@....".
Egal, was ich bei meinem TIdFTP Objekt für Werte unter Username/Password einstelle. Also ob richtig oder falsch. Er loggt mich immer als "anonymous user" ein. Es liegt keine SSL Verschlüsselung oder ähnliches vor.Ich habs mit AutoLogin an/aus probiert. Explizit mit Login() nachträglich.
Es ändert sich einfach nichts.
(Anonym eingeloggt bedeutet hier, dass ich zwar auf den Server komme, aber dort keine Ordner/Dateien vorfinde)Ich spare mir mal den Quellcode, weil das keine 5 Zeilen sind.
Gibt es noch irgendwas Spezielles, das beachtet werden muss? Ich sehe in keinem Forum , keinem Tutorial irgendwas.
Es kommt mir so vor, als ob er den Login gar nicht mit den eingestellten Werten durchführt.
Schöne Grüße und vielen Dank.
-
Schau mal nach TSocksInfo.Authentication
-
Kann sein, dass du folgende Einstellung setzen musst:
Proxy Settings ==> Proxy Type = fpcmNone
-
Also hmm.. der Fehler scheint irgendwo anders zu liegen.
Die übertragenen Dateien sind ebenfalls fehlerhaft. Es wird "0A" durch "0D 0A", also Linux Zeilenumbruch durch Windowszeilenumbruch ersetzt.
Das mit dem Login geht nach wie vor nicht.
-
Login läuft , nach "UseHOST = false".
Das genannte Problem beim herunterladen gilt nach wie vor.http://www.delphipraxis.net/136752-ftp-download-fehler-datei-2.html
Das scheint mir mein Problem zu sein, nur funktioniert die "Lösung" leider nicht.
-
wo hast Du bitte die Property UseHost her?
Was funktioniert nicht? Zeig doch mal Code - ist doch sonst alles nur herumgerate
-
UseHOST ist halt einfach ein Property (Indy Version 10.5.5). Finde aber auch nichts in der Docu dazu beschrieben.
{TryNATFastTrack , UseCCC, UseExtensionDataPort , UseHOST , UseMLIS} <- Die hängen bei mir auf einem Haufen herum.
Ich habe kaum relevanten Code zu zeigen. Die meisten Einstellungen lassen sich im Editor direkt eintragen. Connect klappt , Get klappt. Aber die Dateien werden zerstört.
Ich denke ich verstehe den Fehler, aber kann ihn nicht lösen:
Ich habe hier ein Windows-System. Wenn ich Dateien von einem anderen Windows-System herunterlade gibt es keine Probleme.
Lade ich aber Dateien von einem Linux-System herunter, wird 0D durch 0D OA ersetzt.
0A -> Zeilenumbruch Linux
0D OA -> Zeilenumbruch WindowsIch vermute, dass TransferType=ftBinary , warum auch immer, ignoriert und entsprechend Ascii-formatierung vornimmt.
-
Wenn es bei dieser Änderung bleibt, dann könntest du doch erneut über die Datei gehen und die Bytes ändern.
Ist nicht optimal, kann aber als Übergang dienen, bis du eine Lösung gefunden hast.
-
Das ist leider nicht sinnig machbar. Was ist wenn die Bytefolge wirklich drinnen steht?
Es geht nicht nicht nicht nicht! Aah.Interessant ist allerdings: Mit einer alten Indy Version wirds richtig übertragen.
-
Ok es geht, WENN ... ich bevor ich Dateien herunterlade den Clienten Disconnecte und wieder neue Connect() aufrufe.
D.h. für mich -> List(..) zerschießt den TransferTyp bzw setzt ihn fest auf Ascii. Oder "Get(..)" übermittelt dem Server nicht erneut den geforderten TransferTyp...
-
VeG schrieb:
Das ist leider nicht sinnig machbar. Was ist wenn die Bytefolge wirklich drinnen steht?
Es geht nicht nicht nicht nicht! Aah.Interessant ist allerdings: Mit einer alten Indy Version wirds richtig übertragen.
richtig, ich vergaß -.-