Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Via FTP Datei hochladen (https://www.delphipraxis.net/132021-via-ftp-datei-hochladen.html)

xXxKoGaxXx 4. Apr 2009 16:23


Via FTP Datei hochladen
 
Hallo,

ich versuche ein Programm zu schreiben was Textfelder speichert. Hat auch alles funktioniert, aber als ich dann die Eingaben via FTP hochladen wollte, kam ich nicht mehr weiter. Ich habe jetzt 2 Stunden im internet gesucht, erfolglos. :coder2:

Ich hoffe ihr könnt mir sagen wie ich ganz einfach eine Textdatei via FTP hochladen kann.

Hier Mein Button der Alles speichern soll. Nur wie bekomme ich da jetzt einen FTP-Upload hin? :wall:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
Datei: TextFile;
begin
AssignFile(Datei, ExtractFilePath(Application.ExeName) + Edit1.text + '.txt');
Rewrite(Datei);
try
WriteLn(Datei, 'Name=' + Edit1.text);
WriteLn(Datei, 'Nachname=' + Edit2.text);
finally
CloseFile(Datei);
end;
close;
end;

Ihr könnt mich auch per ICQ erreichen:
476-353-086

Vielen Dank schonmal.

Luckie 4. Apr 2009 16:37

Re: Via FTP Datei hochladen
 
Zum Beispiel mit einer Internt-Komponentensammlung. Die Indy-Komponenten wären so etwas.

xXxKoGaxXx 4. Apr 2009 16:39

Re: Via FTP Datei hochladen
 
Wie Funktioniert das denn dann?
Hab davon leider keine Ahnung von Indy.

menten 4. Apr 2009 16:41

Re: Via FTP Datei hochladen
 
Sieht dir mal unter www.overbyte.be die Komponenten an. Da gibt es auch einen Ftp-Client.

Gruß
Stefan

Luckie 4. Apr 2009 16:48

Re: Via FTP Datei hochladen
 
Zitat:

Zitat von xXxKoGaxXx
Wie Funktioniert das denn dann?
Hab davon leider keine Ahnung von Indy.

Was hast du denn in den zwei Minuten bisher unternommen, um es zu verstehen?

xXxKoGaxXx 4. Apr 2009 16:51

Re: Via FTP Datei hochladen
 
Komm auf der Seite nicht viel Weiter...

Kann mir jemand Genau erklären wie das Funktioniert?
Mit WinInet habe ich es Probiert, was anscheid eigendlich ein einfacher Weg wäre, nur kam ich da nicht genau hinter.

Kann mir jemand einen Code Posten?

@Luckie: Hab gestern ne Stunde versucht es zu verstehen ...

Luckie 4. Apr 2009 16:53

Re: Via FTP Datei hochladen
 
Hast du dir die Demos schon angeguckt?

http://www.michael-puff.de/Developer...progress.shtml

xXxKoGaxXx 4. Apr 2009 16:55

Re: Via FTP Datei hochladen
 
Nein. Diese Demos hatt ich noch nicht gefunden, ich werd mir diese mal anschaun.
Danke :thumb:

Luckie 4. Apr 2009 16:56

Re: Via FTP Datei hochladen
 
Allerdings alles ohne Fehlerbehandlung. Sollte es zu einem Fehler kommen, fliegt dir der Cod eum die Ohren. Also Kopf einziehen oder Fehlerbehandlung einbauen.

xXxKoGaxXx 4. Apr 2009 17:04

Re: Via FTP Datei hochladen
 
Einer von euch würde sich nicht die Mühe machen und mir helfen via teamviewer oder? :wink: :tongue:
:duck:

Ich möcht ganz einfach wenn ich den Button OK drück das eine Datei entsteht auf dem FTP-Server mit dem Inhalt von Textfeld 1 und 2.

Luckie 4. Apr 2009 19:43

Re: Via FTP Datei hochladen
 
Was ist an meinem nun wirklich einfachen Beispiel so schwierig?

xXxKoGaxXx 4. Apr 2009 20:22

Re: Via FTP Datei hochladen
 
Ich bekomme das nicht bei mir in die Programmierung, aber hab es jetzt via cmd und batch datei gelöst! (Erstmal)
Wenn jemand das Richtig mir in die Programmierung machen kann wäre besser :D

Gruß

jfheins 4. Apr 2009 20:24

Re: Via FTP Datei hochladen
 
Der relevante Teil ist übrigens der hier:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  IdFTP1.Host := edtServer.Text;
  IdFtp1.Username := edtUser.Text;
  IdFTP1.Password := edtPW.Text;
  IdFTP1.Connect;
  IdFTP1.ChangeDir(edtRemDir.Text);
  IdFTP1.Put(edtFile.Text, ExtractFilename(edtFile.Text));
  IdFTP1.Disconnect;
end;
Aber ein bisschen selber machen wird hier schon von dir verlangt werden ;)

Luckie 4. Apr 2009 20:26

Re: Via FTP Datei hochladen
 
Ich habe es mal kommentiert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  // Zugangspaaremter setzen
  IdFTP1.Host := edtServer.Text; // Server
  IdFtp1.Username := edtUser.Text; // Benutzername
  IdFTP1.Password := edtPW.Text; // Passwort
  // verbinden
  IdFTP1.Connect;
  // in das Verzeichnis wechseln, z.B.: /html/meineDaten/
  IdFTP1.ChangeDir(edtRemDir.Text);
  // Datei hochladen (Quelldatei, Zieldatei)
  IdFTP1.Put(edtFile.Text, ExtractFilename(edtFile.Text));
  // trennen
  IdFTP1.Disconnect;
end;
Wo ist jetzt das Problem?

xXxKoGaxXx 4. Apr 2009 20:33

Re: Via FTP Datei hochladen
 
Fehler: Undefinierter Bezeichner: 'IdFTP1'

kurz und knapp :D

jfheins 4. Apr 2009 20:37

Re: Via FTP Datei hochladen
 
Suche in der Komponentenleiste (da wo auch die Eingabefelder und so drin sind) nach einem TIdFTP - ziehe das aufs Formular.

Und bevor die Frage kommt von der ich denke dass sie kommt: Verwende den Code hier:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  // Zugangspaaremter setzen
  IdFTP1.Host := '<HOST>'; // Server
  IdFtp1.Username := '<USER>'; // Benutzername
  IdFTP1.Password := '<PASSWORT>'; // Passwort
  // verbinden
  IdFTP1.Connect;
// Datei hochladen
  IdFTP1.Put('<DATEIPFAD>', '<DATEINAME>');
  // trennen
  IdFTP1.Disconnect;
end;
Und ersetzte die Sachen in den spitzen Klammern durch die korrekten Angaben ;)

Luckie 4. Apr 2009 20:41

Re: Via FTP Datei hochladen
 
Zitat:

Zitat von xXxKoGaxXx
Fehler: Undefinierter Bezeichner: 'IdFTP1'

Also die Komponente musst du schon auf dein Formular legen, siehe jheins.

Delphi-Quellcode:
IdFTP1.Put('<QUELLDATEIPFAD+DATEINAME >', '<DATEINAME_WIE_ER_AUF_SERVER_HEISSEN_SOLL>');
Ich habe das Gefühl, als wenn ich einen Blinden durch ein Labyrinth führe. :?

xXxKoGaxXx 4. Apr 2009 20:50

Re: Via FTP Datei hochladen
 
Da gibt es kein TIdFTP.
Wo konnte man das nochmal Downloaden? ^^

jfheins 4. Apr 2009 20:53

Re: Via FTP Datei hochladen
 
Welche Delphiversion hast du?

Wenn du das nicht weist: Wie sieht das Icon aus? So ein rundes Etwas oder ne große Zahl?

@Luckie: Ich habe das Gefühl, als würde ich einem Blinden den Weg durchs Labyrinth beschreiben :stupid:

Luckie 4. Apr 2009 20:55

Re: Via FTP Datei hochladen
 
Was für eine Delphi Version hast du?

http://www.indyproject.org/index.de.aspx
Zitat:

Zitat von jfheins
@Luckie: Ich habe das Gefühl, als würde ich einem Blinden den Weg durchs Labyrinth beschreiben :stupid:

Das trifft es noch besser. ;)

@xXxKoGaxXx: Sorry, wenn wir hier ein bischen rumflachsen.

xXxKoGaxXx 4. Apr 2009 20:56

Re: Via FTP Datei hochladen
 
1. Ich bin nicht blind, nur im moment zu doof ;-) Hat private Hintergründe...
2. Delphi 7 Personal
3. Danke :D schonmal

xXxKoGaxXx 4. Apr 2009 21:04

Re: Via FTP Datei hochladen
 
Direkt mal ne andere Frage:
Kann ich dort auch direkt eine Datei schreiben?
Also wo dann Edit1 und Edit2 reinschreiben kann?

Luckie 4. Apr 2009 21:05

Re: Via FTP Datei hochladen
 
Bei D7 sind die Indies nicht dabei. Kannst du aber nachinstallieren, siehe mein Link.

Wie direkt schreiben? Du musst schon eine Datei hochladen.

xXxKoGaxXx 4. Apr 2009 21:08

Re: Via FTP Datei hochladen
 
Kann ich dort nicht eine blablabla.txt erstellen?

xXxKoGaxXx 4. Apr 2009 21:12

Re: Via FTP Datei hochladen
 
Ich bin zu doof das zu installieren -.-

xXxKoGaxXx 4. Apr 2009 21:34

Re: Via FTP Datei hochladen
 
Kann mir wer helfen das Indy zu installieren? ^^

Luckie 4. Apr 2009 21:36

Re: Via FTP Datei hochladen
 
Würdest du bitte nicht andauernd neue Postings verfassen, sondern vorangegangene, wenn noch keiner geantwortet, hat editieren?

xXxKoGaxXx 4. Apr 2009 21:40

Re: Via FTP Datei hochladen
 
Zitat:

Zitat von Luckie
Würdest du bitte nicht andauernd neue Postings verfassen, sondern vorangegangene, wenn noch keiner geantwortet, hat editieren?

Sorry :cry:

Hoff trotzdem noch auf deine Hilfe ...

dutyfree 4. Apr 2009 21:53

Re: Via FTP Datei hochladen
 
Wieso so kompliziert?

Delphi-Quellcode:
function putfile(server, username, password, localfile, remotefile: string; port: word = 21): boolean;
var
  hopen, hconnect: HINTERNET;
begin
  hopen := InternetOpen('myagent', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
  hconnect := InternetConnect(hopen, pchar(server), port, pchar(username), pchar(password), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
  Result := FtpPutFile(hconnect, pchar(localfile), pchar(remotefile), FTP_TRANSFER_TYPE_UNKNOWN, 0);
  InternetCloseHandle(hconnect);
end;
Aufruf:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
putfile(ftpadresse, loginname, loginpw, 'C:\deinedatei.txt', 'deinedatei.txt')
end;

Luckie 4. Apr 2009 22:00

Re: Via FTP Datei hochladen
 
Nun ja, die API-Funktionen sind für einen Anfänger wohl etwas schwerer. Und wenn die Indies installiert wäre, hätten wir das Problem schon längst gelöst.

xXxKoGaxXx 5. Apr 2009 12:44

Re: Via FTP Datei hochladen
 
Zitat:

Zitat von dutyfree
Wieso so kompliziert?

Delphi-Quellcode:
function putfile(server, username, password, localfile, remotefile: string; port: word = 21): boolean;
var
  hopen, hconnect: HINTERNET;
begin
  hopen := InternetOpen('myagent', INTERNET_OPEN_TYPE_DIRECT, nil, nil, 0);
  hconnect := InternetConnect(hopen, pchar(server), port, pchar(username), pchar(password), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
  Result := FtpPutFile(hconnect, pchar(localfile), pchar(remotefile), FTP_TRANSFER_TYPE_UNKNOWN, 0);
  InternetCloseHandle(hconnect);
end;
Aufruf:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
putfile(ftpadresse, loginname, loginpw, 'C:\deinedatei.txt', 'deinedatei.txt')
end;

Danke, hab es hinbekommen!

:)

:coder:

CuCu


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:55 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