![]() |
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 ![]() Damit komme ich aber nicht weiter. Hat jemand ein Code-Beispiel für den POST Upload einer Datei per Stream, ohne SSL libs? |
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; |
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. ![]() |
AW: Datei auf FTP Server OHNE Indy
Zitat:
Ich habe alle möglichen Kombinationen probiert: ![]() ![]() ![]() ![]() etc. Sowohl mit Put als auch mit Post. Leider klappt es bereits unter Windows nicht.:pale: Hast Du eine Idee? Gruß Steffen |
AW: Datei auf FTP Server OHNE Indy
Zitat:
|
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. |
AW: Datei auf FTP Server OHNE Indy
Zitat:
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? |
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? |
AW: Datei auf FTP Server OHNE Indy
Zitat:
|
AW: Datei auf FTP Server OHNE Indy
Zitat:
|
AW: Datei auf FTP Server OHNE Indy
Ok, one.com verwendet SFTP. Klingt zwar wie FTP, ist aber ein völlig anderes Protokoll. In Delphi gibt es m.E. keine Komponenten (auch nicht bei Indy), mit denen du eine SFTP-Verbindung herstellen kannst.
|
AW: Datei auf FTP Server OHNE Indy
... auch meine beiden anderen Provider, artfiles.de und alfahosting.de bieten offenbar kein WebDav an:pale:
|
AW: Datei auf FTP Server OHNE Indy
Ich bin bei IONOS / 1&1. Da ist das Standard; da klappt es auch mit den Nethttpclient.put()
|
AW: Datei auf FTP Server OHNE Indy
Ich nutze das WebDav von meinem Strato-HiDrive für solche Zwecke. Funktioniert wunderbar mit TNetHTTPClient.put mit der hier schon beschriebenen Authentication und auch mit https und ist v.a. im Download deutlich schneller als meine bei gehostete Strato-Website. Du musst dann nur neben der Website eben ein HiDrive haben. Dies kostet ab 3 EUR im Monat und es gibt immer Aktionen, es günstig aufzurüsten (mehr Speicher oder mehr User), also besser mit einem kleinen Paket beginnen.
|
AW: Datei auf FTP Server OHNE Indy
Zitat:
Schreibe eine Batchdatei MeinFTPUpload.bat
Code:
Schreibe die Steuerdatei MeinFTPUpload.ftp
@echo off
ftp -n -i -s:MeinFTPUpload.ftp echo *** Upload fertig *** pause
Code:
Alle möglichen Parameter für den FTP Befehl findest du in der MS-Hilfe.
open ftp.meine-domain.de
user admin@meine-domain.de meinGeheimesPasswort bin lcd C:\MeinLokalesDatenVerzeichnis put meineUploadDatei1.dat put meineUploadDatei2.dat quit Bis bald... Thomas |
AW: Datei auf FTP Server OHNE Indy
WebDAV ist doch in PHP integriert?
Ich dachte damit kann man auch einen Server aufsetzen? Jedenfalls bietet sowas wie ownCloud und Andere auch einen WebDAV-Server an. In Windows ist zwar FTP drin, aber über CreateFile/TFileStream/usw. ist es nicht "direkt" nutzbar. Es gibt in der WinAPI einige schnittstellen für FTP, aber wenn es sein muß, dann kann man auch mit SUBST und Co. ein Laufwerk oder Unterverzeichnis auf FTP umleiten und Jenes dann dennoch CreateFile/TFileStream/usw. nutzen. [edit] gibt auf dem Mac bestimmt auch sowas [/edit] Witzig: Im OpenDialog ist sogar was drin, aber natürlich nur für den Download. Da kann man HTTP- und FTP-URLs in das Dateiname-Edit einfügen und öffnen. (jenes wird dann windows-intern über den InternetExplorer runtergeladen und die Datei aus dem Cache übergeben ... genauso wie FTP im Explorer auch durch den IECache läuft) |
AW: Datei auf FTP Server OHNE Indy
.. für SFTp kann ich secureBridge von DevArt empfehlen.
IP*Works hat auch einen SFTP Client - aber nicht in der Delphi Version. Mit putty ließe sich auch ein SFTP Client bauen. Grüße Klaus |
AW: Datei auf FTP Server OHNE Indy
Es gibt auch noch WINSCP, damit kann man leicht eine SFTP-Verbindung herstellen. Was es aber besonders interessant macht, ist das man es als Kommadozeilen-Anwendung (WINSCP.COM) mit Scripten aufrufen und steuern kann. Beschreibung dazu gibt es auch.
|
AW: Datei auf FTP Server OHNE Indy
Zitat:
|
AW: Datei auf FTP Server OHNE Indy
Zitat:
Grüße Klaus |
AW: Datei auf FTP Server OHNE Indy
Zitat:
Es geht nicht darum, dass ich eine Datei auf meinen FTP Server laden will. Das bekomme ich wohl noch so hin. Ich will dass ein Kunde, der mein Programm nutzt, einen Stream auf meinem FTP Server ablegen kann. Wäre das ohne WebDav durch die Verwendung von Indy und den SLL-Libs möglich oder gelten dafür die gleichen Limitationen? |
AW: Datei auf FTP Server OHNE Indy
.. Du hattest im ersten Post geschrieben "gesicherter FTP Server"
Ist das dann ein SFTP oder ein FTPs (FTP over SSL)? Grüße Klaus |
AW: Datei auf FTP Server OHNE Indy
Wenn ich mich recht entsinne, kann Indy nur FTP, aber kein SFTP.
Wenn dein Server auch FTP unterstützt, dann geht es. Die SSL-Libraries brauchst du dann auch nicht, überträgst aber alles unverschlüsselt. Für SFTP brauchst du andere Komponenten (z.B. Devart, welches auch MacOS unterstützt), das kann Delphi nicht mit Bordmitteln. WebDav wird von Delphi-Bord-Mittel unterstützt, da brauchst du auch kein Indy, sondern kannst TNetHTTPClient verwenden. Dann kümmert sich bei https-Verbindungen das OS automatisch um die SSL-Libraries. |
AW: Datei auf FTP Server OHNE Indy
I now used Indy TIdFTP to Upload file to FTP successfully.
Code:
As you mentioned, no SSL libs necessary with regular FTP.
with IdFTP1 do
begin Host := [ftp server name]; User := [User]; Password := [PW]; Passive := true; Connect; Put(sourcefilename, targetfilename_withpath) end; Thank you for your advice! :-D |
AW: Datei auf FTP Server OHNE Indy
.. in der heutigen Zeit, würde ich, wenn es eben geht, auf FTP verzichten und SFTP nutzen.
Wie schon erwähnt, werden bei FTP Username, Passwort und Daten unverschlüsselt übertragen. Grüße Klaus |
AW: Datei auf FTP Server OHNE Indy
|
AW: Datei auf FTP Server OHNE Indy
Zitat:
Für meinem Fall reicht mir hier das reguläre FTP. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz