Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Fortschrittanzeige bei Upload mit TMsMultiPartFormDataStream (https://www.delphipraxis.net/104042-fortschrittanzeige-bei-upload-mit-tmsmultipartformdatastream.html)

Chrissi91 26. Nov 2007 14:28


Fortschrittanzeige bei Upload mit TMsMultiPartFormDataStream
 
Hi,

ich habe ein Formular auf dem Webserver liegen, mit dem man eine Datei uploaden kann. Ich steuer das Script von Delphi aus mit:

Delphi-Quellcode:
var
  MultiPartFormDataStream: TMsMultiPartFormDataStream;
  Response: String;
begin
  MultiPartFormDataStream := TMsMultiPartFormDataStream.Create;
  Try
    HTTP.Request.ContentType := MultiPartFormDataStream.RequestContentType;
    MultiPartFormDataStream.AddFile('f', edtPath.Text, '');
    MultiPartFormDataStream.PrepareStreamForDispatch;
    MultiPartFormDataStream.Position := 0;
    Response := HTTP.Post('http://www.*********.de/vertretung/upload.php', MultiPartFormDataStream);
  Finally
    MultiPartFormDataStream.Free;
  end;
end;
HTTP ist bei mir die Indykomponente idHTTP. Jetzt funktioniert das ja ganz prima. Aber kann ich noch eine Fortschrittsanzeige einbauen? Wie würde das gehen?

Ist eigentlich ******* egal, aber das Programm ist für unsere stellvertretende Schulleiterin, die damit die Vertretungspläne einscannen und auf den Server hochladen soll. Da muss dieser Schnickschnackk noch rtein, außerdem weiß sie dann, wann es fertig ist. :P

Ist das möglich? Ich glaube nämlich nicht .... Ich hoffe, ich irre mich. :mrgreen:

lbccaleb 26. Nov 2007 19:13

Re: Fortschrittanzeige bei Upload mit TMsMultiPartFormDataSt
 
kannst du nicht einfach die position von multipartformdatastream abfragen??? :gruebel: :gruebel:

mfg

Chrissi91 26. Nov 2007 19:28

Re: Fortschrittanzeige bei Upload mit TMsMultiPartFormDataSt
 
Hm ... gute Idee. Habe mal zwei Eigentschaften rausgeuscht. Position und Size. Das könnte was sein. Aber wie soll ich das abfragen? Eine Proecdure OnWork oder sowas gibts ja nicht. :(

lbccaleb 26. Nov 2007 19:51

Re: Fortschrittanzeige bei Upload mit TMsMultiPartFormDataSt
 
also wenn mich jetzt nicht alles täuscht, reicht es wenn du ein progressbar auf der formplazierst und diese dann per

Delphi-Quellcode:
progressbar1.position := MultiPartFormDataStream.Position;
updatest, oder nicht?? ich kenn die komponente aber nicht genau, hab sie nur mit google gefunden, für intressierte, die gibt es hier:

multipartformdatastream

mfg

Chrissi91 26. Nov 2007 21:36

Re: Fortschrittanzeige bei Upload mit TMsMultiPartFormDataSt
 
Tatsache, es funktioniert. ;)

Nur wie halte ich sie immer auf dem Laufdenden? Praktisch schreib ich deine Zeile mit Application.ProcessMessages; in einen Timer mit Intervall 100 z.B., den ich beim Hochladen auf Enabled := True; setze. Es funktioniert aber trotzdem nicht. :|

Das Programm bleibt stehen ... bis das Hochladen abgeschlossen ist u. dann geht die Progressbar mit einem Mal auf 100 %

EDIT: War gestern Abend schon ein bisschen spät. Ich habe es jetzt so gelöst: Da den Hauptteil die IndyKomponente idHTTP macht, habe ich einfach den Fortschritt auf die Progressbar übertragen in der Procedure: HTTPWork


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