![]() |
[GELÖST] IdHTTP POST WorkCount Problem
Hallo,
ich Sende mit einem TIdHTTP ein Post Befehl an einen Server, der eine Datei beinhaltet, was auch alles wunderschön klappt. Wenn von meiner Seite alles geklappt hat, schickt der Server eine Antwort zurück, das alles gut lief. Wenn ich jetzt aber mit AWorkCount bei OnWork anzeigen will, wieviel schon hochgeladen wurde, klappt das auch, aber sobald der ursprüngliche Upload fertig ist, steht in AWorkCount was an Daten übertragen wurde von der Antwort des Server. Jetzt suche ich einen Lösungsansatz, wie ich verhindern kann, das ich nur die AWorkCount daten des Uploades hab. Über Hilfen würde ich mich sehr freuen Edit hier noch der Source dazu: Das steht im Button OnClick:
Delphi-Quellcode:
upload := TIdMultiPartFormDataStream.Create;
upload.AddFile('file', Edit1.Text, 'multipart/form-data'); fileserver := 'http://beispielurl.com/upload.php'; upload_result:= IdHTTP1.Post(fileserver, upload); |
AW: IdHTTP POST WorkCount Problem
Hey,
wird denn bei dir kein WorkBegin() Event ausgelöst. Darüber wird man doch benachrichtigt ob gerade gelesen/geschrieben wird und wieviel erwartet wird (AWorkCountMax). Ansonsten weißt du über die Größe des Upload-DataStreams + feste Headergröße doch wieviel gesendet wird. Der Rest müsste also die Antwort sein. Vielleicht wird auch ein Redirect() Event ausgelöst, also nachdem der Server die Daten empfangen hat. Alles was nachdem an Daten anfällt könntest du doch verwerfen. Mag sein, dass ich jetzt was übersehen habe, aber ist schon spät und musste deine Frage erst paar mal lesen :duck: |
AW: IdHTTP POST WorkCount Problem
Danke für deine Antwort.
Ja die sache ist etwas schwammig Formuliert, gebe ich zu, allerdings weiß ich nicht, wie ich es anders erklären soll. Aber ich glaube ich habe das ganze gelöst. Da ich mehrere Idhttp Posts sende, musste ich nur den richtigen markieren, indem ich vorher ein uploaded := TRUE und direkt danach ein uploaded := FALSE setze, also
Delphi-Quellcode:
Hier hat mir dann dein Tip mit geholfen, mir mal die Ereignisse anzuschauen, und dabei ist mir aufgefallen das ich die AWorkMode (TWorkMode) komplett übergangen habe und ich damit herausfinden konnte, wann OnWork Uploaded bzw das Ergebnis empfängt (Downloaded)
uploaded := TRUE;
upload_result:= IdHTTP1.Post(fileserver, upload); uploaded := FALSE;
Delphi-Quellcode:
Das ganze hab ich machen können nachdem ich die Hitze hab vorbeiziehen lassen und wieder einen klaren kühlen Kopf hatte. Eventuell lag es ja wirklich an der Hitze, das ich das alles nicht mehr Richtig bedenken konnte.
if (AWorkMode = wmWrite) AND (uploaded = TRUE) then
begin {SOURCE DER BEIM UPLOADEN AUSGEFÜHRT WIRD} end; Aber auch die Danke geskill, weil du mir wahrscheinlich den richtigen Denkanstoss verpasst hast :) Den ersten Tests zufolge ist das Problem damit gelöst. |
AW: [GELÖST] IdHTTP POST WorkCount Problem
Bitte niemals mit TRUE vergleichen, das kann ins Auge gehen.
Delphi-Quellcode:
if (AWorkMode = wmWrite) AND (uploaded{ = TRUE}) then
|
AW: [GELÖST] IdHTTP POST WorkCount Problem
Zitat:
|
AW: [GELÖST] IdHTTP POST WorkCount Problem
|
AW: [GELÖST] IdHTTP POST WorkCount Problem
ok, gebe ich dir recht. Danke für den Hinweis :)
|
AW: [GELÖST] IdHTTP POST WorkCount Problem
No problema ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 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 by Thomas Breitkreuz