Einzelnen Beitrag anzeigen

fisipjm

Registriert seit: 28. Okt 2013
299 Beiträge
 
#1

Große Datei über WebBroker als 'application/octet-stream' zur Verfügung stellen

  Alt 4. Apr 2024, 12:29
Hi,

kurzer Umgebungsüberblick.
- Delphi Version 10.2
- WebBroker aktuell als eigenständiger Webserver lauffähig (später ISAPI Modul im IIS)
- Dateien mit Größe 100mb +

Also, ich versuche ein Funktion zu erstellen, die mir eine Datei auf dem Filesystem als 'application/octet-stream' zur Verfügung stellt.
Funktioniert soweit auch schon. Verwende dafür einfach einen TByteStream.LoadFromFile('FilePath') .

das ganze sieht dann so aus:
Delphi-Quellcode:
 Response.Content := '';
 Response.ContentType := 'application/octet-stream';
 Response.ContentStream := TBytesStream.Create;
 TBytesStream(Response.ContentStream).LoadFromFile('FilePath');
Funktioniert Problemlos bis Dateien von ca. 50MB. Dann bekomme ich einen Socket Fehler 10054 Die Verbindung wurde von Peer zurückgesetzt. Ich nehme mal an, das hängt mit dem reservierten Speicher zusammen. Kennt das jemand und wie würde man das umgehen?
Die Abfrage in Chunks aufteilen könnte helfen, aber ich weiß nicht wie ich das mit dem Websocket umsetzen kann, der Sendet ja zum schluss erst alles gebündelt raus und nicht schon zwischenzeitlich, oder?

vG
PJM
  Mit Zitat antworten Zitat