Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Upload per FTP (https://www.delphipraxis.net/125737-upload-per-ftp.html)

Delphi08 10. Dez 2008 20:45


Upload per FTP
 
Hi,
ich will, dass mein Programm bei jedem Start eine bestimmte Datein in einen Ordner meines FTP-Servers hochläd.
Nunja dazu muss man sagen, ich bin Anfänger :zwinker: was das Ganze nicht einfacher macht :(
Ich weiß, ich sollte mit kleineren Dingen anfangen, aber des tu ich auch :P.
Bloß hierbei brauch ich dann doch eure Hilfe, das Programm an sich ist recht klein und simpel, bloß will ich eben, dass es nebenbei noch per FTP eine Datei hochläd.

Wie mache ich sowas?
Ein einfacher Quellcode/Seite würde mir auch reichen =)
Also es muss wirklich nur die Verbindung zum Server hergestellt, und eine Datei hochgeladen werden. Mehr eigentlich nicht.

Danke :thumb:

mkinzler 10. Dez 2008 20:47

Re: Upload per FTP
 
Schau dir doch die Beispiele deiner Netzkomponentensammlung deiner Wahl an, da sollte was Brauchbares dabei sein

ascotlx 10. Dez 2008 20:59

Re: Upload per FTP
 
Hallo Delphi08,

ich habe mich auch schwer getan mit diesen Dingen. Fertiger Code hilft Dir aber nicht wirklich.
Ein nettes Tutorial kann da Wunder wirken, sollte man kein Buch zu Hand haben.
Probier's doch mal mit Google: "delphi ftp upload"
Da kommt schon eine Menge, oder hiermit:
Indy Tutorial

Gruss

ein mitleidender ;O)

sx2008 11. Dez 2008 05:11

Re: Upload per FTP
 
Wenn es einfach sein darf, dann kann man auch die ftp.exe von Windows ansteuern.
Man gibt mit dem Parameter -s eine Steuerdatei mit.
Die Steuerdatei sieht z.B. so aus:
Code:
open ftp.myserver.de
user admin
pass geheim
cd /upload
put C:\temp\bericht2008.pdf
bye
Diese Steuerdatei ist mit Hilfe eines TStringList Objekts sehr schnell und einfach erstellt.
Dann nur noch den Windows Systempfad ermitteln und ftp.exe mit ShellExecute starten.

Noch interessanter wird es, wenn man WinSCP von Aussen fernsteuert.
Dann kann man auch schwierige Dinge wie z.B. FTP über Proxyserver oder Secure-FTP in den Griff bekommen.
Natürlich muss dann WinSCP installiert sein.

Delphi08 11. Dez 2008 15:09

Re: Upload per FTP
 
Versteh ich nicht ganz, sprich ich rufe ftp.exe dann so auf, oder?

Delphi-Quellcode:
WinExec(PChar('C:\WINDOWS\system32\ftp.exe -s'), SW_SHOWNORMAL);
s ist vom Typ TStringList oder?

Wie schreibe ich die Steuerbefehle in s?

Delphi-Quellcode:
open ftp.myserver.de
user admin
pass geheim
cd /upload
put C:\temp\bericht2008.pdf
bye

Berlinermauer 11. Dez 2008 15:23

Re: Upload per FTP
 
nimm wie schon empfohlen die Indys,

da kannste ganz einfach einen ftp ansteuern, musst nicht auf die sys32 kompos vertrauen,
und man kann nicht auslesen, wie die daten sind, da du dafür funktionen gibt.

Jedoch solltest du wissen, dass man jedoch ganz einfach mit ner firewall/nem Sniffer, die daten abrufen kann, also mach nen extra user in n extra ordner der nur writerechte hat

Larsi 11. Dez 2008 15:39

Re: Upload per FTP
 
http://www.delphipraxis.net/internal...&highlight=ftp

Delphi08 11. Dez 2008 16:45

Re: Upload per FTP
 
Zitat:

Zitat von Larsi
http://www.delphipraxis.net/internal_redirect.php?t=88375&highlight=ftp

Genau sowas habe ich gesucht.
Funktioniert auch super =) Also die Datei finde ich dann auch wirklich im richtigen FTP Verzeichnis.
jetzt kommt das große ABER, ich bekomme vom Debugger die Meldung "Zugriffsverletzunge bei 0xfeeefeee: Lesen" (-> Programm beenden).

Will ich das Programm nochmals aufrufen, so klappt dies nicht, manch eine andere .exe funktiert bis zum nächsten Neustart auch nicht mehr.

Was ich eben bei Wiki gefunden habe war folgendes
Zitat:

Used by Microsoft's HeapFree() to mark freed heap memory
->
Zitat:

Wird von HeapFree() verwendet um freigegebenen Speicher zu kennzeichnen.
Allerdings weiß ich nicht wirklich viel mit anzufangen, geschweige denn, warum ich wohl der einzige bin der dieses Problem bei "FtpPutFile" hat.

hsbc 12. Dez 2008 10:22

Re: Upload per FTP
 
Hallo,

vielleicht liegt es daran, dass das Handle hOpen nicht geschlossen wurde?

Versuche mal, hinter dem

InternetCloseHandle(hconnect);

noch

InternetCloseHandle(hopen);

einzufügen.

mfg
Herbert

Delphi08 12. Dez 2008 14:05

Re: Upload per FTP
 
hab ich eben versucht, aber der Fehler tritt immer noch auf.
Delphi kann wohl das Programm nicht beenden, muss immer erst komplett aus Delphi raus.

Hab es mal als Konsolenanwendung ausgelagert.
Ruf ich es nach dem Absturz erneut auf, bekomm ich nur noch den schwarzen Kasten, keinen Error mehr, sondern das Programm hängt sich einfach auf.

Gehe ich mit dem Debugger durch das Programm, so muss der Fehler wohl in dieser Zeile liegen:

Delphi-Quellcode:
  hconnect := InternetConnect(hopen, pchar(server), port, pchar(username), pchar(password), INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE, 0);
Denn ab hier geht nichts mehr.

Mein Aufruf sieht wie folgt aus:

Delphi-Quellcode:
putfile('meinserver.de', 'meinBenutzer', 'dasPasswort', 'C:\loewe.jpg', '/Test/loewe.jpg');
Verzeichnis "Test" existiert auf dem Server, und nach dem 1. ausführen ist es auch dort zu finden. Also dürfen die Parameter eigentlich stimmen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:21 Uhr.
Seite 1 von 2  1 2      

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