Einzelnen Beitrag anzeigen

Hobbycoder

Registriert seit: 22. Feb 2017
955 Beiträge
 
#1

IdHttpServer JPG-Download

  Alt 18. Jul 2019, 19:22
Nachdem nun der File-Upload bei mir klappt, hakt es beim File-Download.
Um den vom IdHttpServer bereitgestellten Webseiten etwas Leben und Farbe zu geben, sind Grafiken unumgänglich.

Das einbauen über <img src="123.jpg"> klappt, das Bild wird auch beim Seitenaufbau vom Server abgerufen und auf der Festplatte gefunden, das habe ich überprüft.

Bereitgestellt wird es im TIdHttpServer.CommandGet, so wie alle anderen Dokumente auch, mit folgendem Code:
Delphi-Quellcode:
          AResponseInfo.ContentType:=GetMIMETyp(config.Pfade.Bilder+filename);
          fs:=TFileStream.Create(config.Pfade.BilderKrankmeldungen+filename, fmOpenRead or fmShareDenyWrite);
          AResponseInfo.ContentLength:=fs.Size;
          AResponseInfo.ResponseNo:=200;
          AResponseInfo.ContentStream:=fs;
Schaut auch alles soweit gut aus. Der Stream wird geöffnet, fs.Size passt auch, und Mime-Type wird auch korrekt gesetzt.

Aber: Der Browser stellt nur ein "broken"-Pic das. Wenn ich dann mit F12 in die Console von Chrome schaue, steht dort "ERR_CONTENT_LENGTH_MISMATCH".
Firefox stellt ebenfalls das Bild nicht dar. In der Konsole finde ich aber beim Download des Bildes:
Code:
GEThttp://127.0.0.1/%7B5064AB5F-5248-471D-B07E-523E990E6413%7D_Jaco%20Krause20190718_0.jpg
[HTTP/1.1 200 OK 11369ms]

Angefragte Adresse:http://127.0.0.1/%7B5064AB5F-5248-471D-B07E-523E990E6413%7D_XXX%2YYYY20190718_0.jpg
Anfragemethode:GET
Externe Adresse:127.0.0.1:80
Status-Code:
200
Version:HTTP/1.1
   
Antwortkopfzeilen (126 B)   
Kopfzeilen (unformatiert)
HTTP/1.1 200 OK
Connection: close
Content-Type: image/pjpeg
Content-Length: 617907
Date: Thu, 18 Jul 2019 17:01:33 GMT
Anfragekopfzeilen (400 B)   
Kopfzeilen (unformatiert)
Accept   
image/webp,*/*
Accept-Encoding   
gzip, deflate
Accept-Language   
de,en-US;q=0.7,en;q=0.3
Connection   
keep-alive
Cookie   
IDHTTPSESSIONID=TrOIAoyBthltjE8
Host   
127.0.0.1
Referer   
http://127.0.0.1/showbild.php
User-Agent   
Mozilla/5.0 (Windows NT 10.0; &#8230;) Gecko/20100101 Firefox/68.0
In der Netzwerkanalyse von Firefox wird jedoch bei dem Bild als Übertragungsmenge 3,09 kB angezeigt.

Hat einer eine Idee, wo mein Fehler liegen könnte? Ist das so, wie ich es oben mach (senden des Bildes), korrekt?
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat