Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy FTP Server mit Fortschrittsanzeige (https://www.delphipraxis.net/79478-indy-ftp-server-mit-fortschrittsanzeige.html)

Zacherl 23. Okt 2006 14:31


Indy FTP Server mit Fortschrittsanzeige
 
Hi,

ist es irgendwie möglich eine Fortschrittsanzeige beim Down oder Uploaden einer Datei auf oder von meinem IdFTPServer anzuzeigen?

Florian

jfheins 23. Okt 2006 14:36

Re: Indy FTP Server mit Fortschrittsanzeige
 
Ja, das geht ;)

Hier im Forum suchenftp progress

:arrow: http://www.delphipraxis.net/internal...ct.php?t=76684 ;)

Zacherl 23. Okt 2006 14:38

Re: Indy FTP Server mit Fortschrittsanzeige
 
Das das mit dem FTP Client geht ist klar, aber ich möchte, dass Serverseitig (IdFTPServer) ein Fortschritt angezeigt wird ...

Florian

SirThornberry 23. Okt 2006 16:50

Re: Indy FTP Server mit Fortschrittsanzeige
 
Es geht, allerdings nicht mit 2 Zeilen Sourcecode. Allerdings frag ich mich noch wie du das umsetzen willst das auch mehrere Dateien gleichzeitig heruntergeladen/heraufgeladen werden können.

jfheins 23. Okt 2006 17:23

Re: Indy FTP Server mit Fortschrittsanzeige
 
Sorry, hab das mit dem Server überlesen ...

Hmmm ... wenn du Kontolle über beide hast, könntest du dem clienten sagen, er soll dem server per tcp mitteilen, wie weit er ist ;)

Ansonsten müsstest du mal tief in den Sourcen gucken, ob du an die Methode kommt, wo die Daten abgeschickt werden, um dann zu schauen, wieviel bereits geschickt wurde ...

Zacherl 23. Okt 2006 17:31

Re: Indy FTP Server mit Fortschrittsanzeige
 
Ich würde mich über etwas Code freuen, sonst muss ich mich ganz alleine durch den Quelltext der Indys kämpfen ;)
Das mit mehreren Dateien geht denke ich ... Theoretisch bräuchte ich ja nur ein neues Event z.b. OnProgress und darin wird dann auch wieder der AThread übergeben, andem ich die Transfers identifiziere.

Florian

SirThornberry 23. Okt 2006 19:20

Re: Indy FTP Server mit Fortschrittsanzeige
 
der Fortschritt hat nix mit den Indys zu tun. Im OnRetrieveFile und OnStoreFile wird jeweils ein Stream übergeben. Du musst also nur die Streammethoden zum lesen und schreiben überschreiben und bekommst somit mit wenn eine Datei gelesen bzw. geschrieben wird. Wie das genau geht hab ich schonmal gepostet:
http://www.delphipraxis.net/internal...=577802#577802

Zacherl 23. Okt 2006 19:42

Re: Indy FTP Server mit Fortschrittsanzeige
 
Sorry, wenn ich mich dumm anstelle ... also eine OnDestroy Methode könnte ich auch noch hinzufügen, aber wie kann ich die Lese und Schreibe Methoden so überschreiben, dass ich die Anzahl der geschriebenen / gelesenen Bytes bekomme?

Florian

SirThornberry 23. Okt 2006 19:47

Re: Indy FTP Server mit Fortschrittsanzeige
 
ok, hier noch ein Beitrag von mir aus vergangenen Zeiten der genau das demonstriert:
http://www.delphipraxis.net/internal...=563250#563250

Zacherl 23. Okt 2006 20:18

Re: Indy FTP Server mit Fortschrittsanzeige
 
Hey, danke, damit kann ich arbeiten :thumb:

Florian

Nogge 26. Okt 2006 15:26

Re: Indy FTP Server mit Fortschrittsanzeige
 
Hallo Community,
Wenn "auf" dem FTP-Server etwas gespeichert werden soll, ergibt sich bezüglich der Prozessanzeige ein Problem: Wie ermittelt man die Größe der zu übertragenden Datei, damit ein Wert für Progressbar.Max geschrieben werden kann? Der Client vergrößert ja immer nur den Stream...Weiß jemand die Lösung?

mfg Nogge

SirThornberry 27. Okt 2006 12:51

Re: Indy FTP Server mit Fortschrittsanzeige
 
Wenn du die Datei auf den Server übertragen willst liegt die Datei doch bei dir vor und du kannst die Größe im lokalen System ermitteln.

Nogge 27. Okt 2006 12:59

Re: Indy FTP Server mit Fortschrittsanzeige
 
Sorry SirThornberry,
aber ich verstehe kein Wort von deinen hintereinandergereihten Wörtern :?: Kannst Du dich bitte etwas deutlicher ausdrücken? :wink:

SirThornberry 27. Okt 2006 13:19

Re: Indy FTP Server mit Fortschrittsanzeige
 
du schreibst das du auf einen FTP-Server eine Datei übertragen willst. Um eine Datei zu übertragen musst du eine Datei haben welche du übertragen willst. Du übergibst also für den Upload der Datei einen FileStream. Und der FileStream hat das Property "Size" welches gleichzeitig der Max-Wert ist.

Nogge 27. Okt 2006 13:22

Re: Indy FTP Server mit Fortschrittsanzeige
 
Ah, da liegt ein Missverständnis vor :-D Ich will die Datei nicht selbst senden, sondern empfangen. In diesem Thread geht's ja um den Server und nicht um den Client.

SirThornberry 27. Okt 2006 13:57

Re: Indy FTP Server mit Fortschrittsanzeige
 
da müsste ich nochmal das FTP-Protokoll angschauen. Ich dächte da wird die Dateigröße auch mit gesendet welche man dann mit einem eigenen CommandHandler auslesen könnte.

[Edit]
Aus dem Source geht hervor das die Größe des Streams auf die Größer der Datei, die hochgeladen wird, gesetzt wird wenn die Größe verfügbar ist.
[/Edit]

Nogge 28. Okt 2006 01:43

Re: Indy FTP Server mit Fortschrittsanzeige
 
Ich habe mich auch mal im Source-Code umgesehen und stimme Dir zu. D.h. also, es kommt auf den Client an? Wenn dieser den ALLO-Befehl verarbeiten kann, wird der Prozess korrekt angezeigt und sonst nicht?

phreax 28. Okt 2006 08:56

Re: Indy FTP Server mit Fortschrittsanzeige
 
Schau dir doch mal das an:
http://www.dsdt.info/tutorials/indy/?page=4

Nogge 28. Okt 2006 08:57

Re: Indy FTP Server mit Fortschrittsanzeige
 
TIdFTP = Client...


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