Entwickler-Ecke
Internet / Netzwerk - Delphi FTP Download / Upload
Robii - Do 11.06.09 01:43
Titel: Delphi FTP Download / Upload
Hey, habe TurboDelphi und würde gerne wissen, wie ich Dateien per FTP Up oder Down loade?
Vielen Dank schonmal.
(Beispiel Code oder Funktionen + Erklärung wären nett)
Dunkel - Do 11.06.09 01:49
Hallo!
Wenn es ums Internetz geht, dann werden auch immer ganz schnell die INDYs (
INDY FTP) genannt. Probier es mal damit!
Robii - Do 11.06.09 01:56
Irgendwie, werde ich daraus nicht so ganz schlau. Ich googel mal weiter.
jaenicke - Do 11.06.09 19:09
So ungefähr: ;-)
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| uses IdFTP;
...
var MyIdFTP: TIdFTP; begin MyIdFTP := TIdFTP.Create; try MyIdFTP.UserName... MyIdFTP.... MyIdFTP.Get / Put finally MyIdFTP.Free; end; end; |
Robii - Do 11.06.09 20:38
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
Den Text verstehe ich nicht genau. Ich ordne da doch nur die Daten zu oder nicht? Sorry,
verstehe das nicht so ganz.
jaenicke - Do 11.06.09 20:42
Du musst die Instanz der Klasse erzeugen, die Logindaten festlegen, verbinden (das hab ich jetzt nicht extra alles geschrieben...), die Dateioperationen mit Get/Put durchführen und die Instanz der Klasse wieder freigeben.
Das kann man natürlich ggf. auch auseinanderziehen, wenn du mehrere Operationen durchführen willst. Also z.B. erzeugen in OnCreate und Freigeben in OnDestroy und ansonsten einfach benutzen.
Robii - Do 11.06.09 21:06
Ok vielen Dank. Wo finde ich den all diese Funktionen + Erklärung, meistens gibt es ja eine Datei in der jede Funktion einzelnd erklärt wird.
Gruß
Robii - Do 11.06.09 21:27
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.FormCreate(Sender: TObject); var MyIdFTP: TIdFTP; begin MyIdFTP := TIdFTP.Create; try MyIdFTP.UserName:='****'; MyIdFTP.Password:='****'; MyIdFTP.Host:='ftp.****.**.funpic.de'; MyIdFTP.Put('C:\Test.Txt','Test.Txt'); finally MyIdFTP.Free; end; end; |
Das hab ich bis jetzt gemacht, leider kommen immer Fehler, das ich eine Zugriffsverletzung habe.
Fehlt da noch etwas, wenn ich googel, werden da immer noch Sachen wie MyIdFTP.Connect genutzt, weiß
aber nicht genau was das ist.
Gruß.
jaenicke - Do 11.06.09 21:36
Ja, nach dem Zuweisen der Zugangsdaten kommt noch Connect, ja... :roll:
Robii - Do 11.06.09 21:38
Und was genau muss ich bei Connect machen?
jaenicke - Do 11.06.09 21:46
Was meinst du? Du musst es aufrufen. :gruebel:
Dass to connect auf deutsch verbinden heißt, ist dir hoffentlich klar, oder? Damit stellst du die Verbindung her, steht ja notfalls auch in der Hilfe, wenns nicht eh schon klar ist...
Robii - Do 11.06.09 21:47
Das connect verbinden heißt ist mir natürlich klar, ich meine aber wie soll ich es aufrufen?
Was muss an Stelle der Fragezeichen stehen?
Gruß
E.: Sorry, dumme Frage, hat sich selbst geklärt. Folgende Fehlermeldung erhalte ich trotzdem noch:
Zugriffsverletzung bei Adresse 0047E85A in Module 'Project1.exe' Lesen von Adresse 0000004C.
Gruß
jaenicke - Do 11.06.09 21:50
Also bei mir gibts da keine Parameter und in der
Dokumentation [
http://www.indyproject.org/docsite/html/TIdFTP_Connect.html] auch nicht. :gruebel:
Die Syntaxergänzung muss dir doch anzeigen welche Parameter du da schreiben sollst...
Und wenn bei Klammer auf da steht, dass keine erwartet werden, dann ist das auch so.
// EDIT:
Ich weiß nicht, ob Connect sofort ausgeführt wird, eigentlich dachte ich schon. Wenn nicht, musst du erst warten, bis wirklich verbunden wurde (OnConnect oder so).
Hmm, muss ich mal testen, aber erst hab ich kurz was anderes zu tun.
Robii - Do 11.06.09 21:55
Ja, der Abend ist ja noch jung. Habe jetzt folgenden Quellcode:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15:
| procedure TForm1.Upload; var MyIdFTP: TIdFTP; begin MyIdFTP := TIdFTP.Create; try MyIdFTP.UserName:='****'; MyIdFTP.Password:='****'; MyIdFTP.Host:='ftp.****.**.funpic.de'; MyIdFTP.Connect; MyIdFTP.Put('C:\Test.Txt','Test.Txt'); finally MyIdFTP.Free; end; end; |
Jetzt bekomme ich keine Fehlermeldung mehr, aber wenn ich auf meinem Ftp-Server nachschaue wurde auch keine Datei hochgeladen. Weiß jemand wieso?
Gruß
E: Klappt jetzt. Vielen Dank für die Hilfe
Gruß
wernerli12 - Mi 09.12.09 18:26
Hallo, ich habe euren thred aufmerksam gelesen und soweit auch alles hinbekommen.
Nur zeigt er mir beim Compilieren folgende Fehlermeldung:
[Fehler] main.pas(94): Nicht genügend wirkliche Parameter
und verweist auf die Quellcode-Zeile:
MyIdFTP := TIdFTP.Create;
Kann mir jemand einen Tipp geben, wo der Fehler liegt?
Danke!
Airtrox - Mi 09.12.09 18:47
Was steht denn darunter? Die Variable hast du definiert und idFTP steht in der uses?
Xentar - Mi 09.12.09 18:49
Create erwartet den Owner als Parameter, also (self)
wernerli12 - Do 10.12.09 00:48
'self' hat gefehlt.
vielen dank für eure schnellen antworten.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!