Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Datei auf FTP Server OHNE Indy (https://www.delphipraxis.net/208254-datei-auf-ftp-server-ohne-indy.html)

Stewag 4. Jul 2021 14:49

Datei auf FTP Server OHNE Indy
 
Ich nutze zum Download einer Datei von einer gesicherten Webseite THTTPClient da dieser im Gegensatz zur Indy Komponente TidHTTP keine SSl Libs benötigt.
Das klappt gut.

Für einen Upload auf einen gesicherten FTP Server würde ich gerne ebenso vorgehen, d.h. unter Verwendung von THTTPClient oder TNetHTTPClient / TNetHTTPRequest.
Die Zielumgebung ist MacOS.

Leider scheint dies kein sonderlich häufig genutztes Vorgehen zu sein, denn üblicherweise wird dafür auf die Indy Komponente verwiesen.
Daher wohl finde ich kein Code-Beispiel für die alternative Methode, nur die entsprechende Emba Hilfe.
Damit komme ich aber nicht weiter.

Hat jemand ein Code-Beispiel für den POST Upload einer Datei per Stream, ohne SSL libs?

Papaschlumpf73 4. Jul 2021 16:51

AW: Datei auf FTP Server OHNE Indy
 
Ich könnte dir einen http/https-Upload anbieten. TmpFile ist der komplette Pfad und Name der lokalen Datei:

Delphi-Quellcode:
NetHttpClient1.Put('http://deinedomain.de/'+RemoteDir+ExtractFileName(TmpFile), TmpFile);



Und zum Authentifizieren:

Delphi-Quellcode:
procedure TForm3.NetHTTPClient1AuthEvent(const Sender: TObject; AnAuthTarget: TAuthTargetType; const ARealm, AURL: string; var AUserName, APassword: string; var AbortAuth: Boolean; var Persistence: TAuthPersistenceType);
begin
if AnAuthTarget = TAuthTargetType.Server then
 begin
 {Achtung: bei falschem Password wird keine Exception (auch nicht beim Upload geworfen}
 AUserName:='deinusername';
 APassword:='deinpasswort';
 end;
end;

TurboMagic 4. Jul 2021 16:57

AW: Datei auf FTP Server OHNE Indy
 
Die erwähnten mit Delphi mitgelieferten Komponenten dürften auf HTTP Funktionalitäten
des jeweiligen OS aufsetzen. Ich weiß jetzt aber nicht, ob die betreffenden Betriebssysteme
für FTP überhaupt entsprechende APIs anbieten.

Zumindest für WIndows gibt's als open source Alternative zu Indy noch ICS.
http://www.overbyte.eu

Stewag 4. Jul 2021 19:37

AW: Datei auf FTP Server OHNE Indy
 
Zitat:

Zitat von Papaschlumpf73 (Beitrag 1491821)

Delphi-Quellcode:
NetHttpClient1.Put('http://deinedomain.de/'+RemoteDir+ExtractFileName(TmpFile), TmpFile);

...danke Papaschlumpf!

Ich habe alle möglichen Kombinationen probiert:
https://domain.de
https://www.domain.de
ftp://domain.de
ftp://ftp.domain.de
etc.

Sowohl mit Put als auch mit Post.

Leider klappt es bereits unter Windows nicht.:pale:

Hast Du eine Idee?

Gruß
Steffen

zeras 4. Jul 2021 19:48

AW: Datei auf FTP Server OHNE Indy
 
Zitat:

Zitat von Stewag (Beitrag 1491830)

Ich habe alle möglichen Kombinationen probiert:
https://domain.de
https://www.domain.de
ftp://domain.de
ftp://ftp.domain.de
etc.

Sowohl mit Put als auch mit Post.

Leider klappt es bereits unter Windows nicht.:pale:

Hast Du eine Idee?

Gruß
Steffen

Hast du auch auf der Gegenseite ein Programm, was deine Daten entgegennimmt (FTP Server, HTTP Server, PHP Script)?

Stewag 4. Jul 2021 20:08

AW: Datei auf FTP Server OHNE Indy
 
... oh, dort muss ebenfalls ein Delphi Programm laufen?:oops:

Nein, ist der gewöhnliche FTP Server meiner Webseite. Ich wüsste auch nicht, wie ich dort eine Software installieren könnte.

zeras 4. Jul 2021 20:15

AW: Datei auf FTP Server OHNE Indy
 
Zitat:

Zitat von Stewag (Beitrag 1491834)
... oh, dort muss ebenfalls ein Delphi Programm laufen?:oops:

Nein, ist der gewöhnliche FTP Server meiner Webseite. Ich wüsste auch nicht, wie ich dort eine Software installieren könnte.

Beim Download ist das viel einfacher. Wenn auf einem FTP/HTTP Link eine Datei liegt, kannst du diese runterladen. Gegebenenfalls mit Anmeldung.

Bei einem Upload brauchst du jemanden, der die Datei entgegennimmt. Das kann ein FTP Server sein oder aber ein Website, wo ein Script läuft.
Kannst du zum Test eine ungesicherte Verbindung aufbauen und dann testen?
Siehst du auf dem FTP Server in den Logs, dass sich da jemand verbinden will?

Papaschlumpf73 4. Jul 2021 20:16

AW: Datei auf FTP Server OHNE Indy
 
Oje, jetzt müssen wir erst mal mit den Begriffen aufräumen. Http ist ein Protokoll und ftp ebenfalls. Das heißt: NetHttpClient spricht auch nur http bzw. https aber nicht ftp. Dazu kommt, dass auf den meisten Webservern schon aus Sicherheitsgründen gar kein "echter" FTP-Server mehr läuft, sondern FTPS oder SFTP. Das sind aber alles unterschiedliche Sachen.

Daher würde ich den Upload eben auch über http(s) machen. Wichtig: Du brauchst dafür nicht die "angeblichen" ftp-Zugangsdaten, sondern die WebDAV-Zugangsdaten. WebDAV läuft über https.

Bei welchem Hoster läuft deine Domain?

Stewag 4. Jul 2021 20:23

AW: Datei auf FTP Server OHNE Indy
 
Zitat:

Bei welchem Hoster läuft deine Domain?
One.com. In der FAQ dort finde ich allerdings gar kein WebDav.

Stewag 4. Jul 2021 20:24

AW: Datei auf FTP Server OHNE Indy
 
Zitat:

Siehst du auf dem FTP Server in den Logs, dass sich da jemand verbinden will?
Nein. Geht das evtl. mit FileZilla?


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 Uhr.
Seite 1 von 3  1 23      

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