Constanze Nagel: Content-Length nie passend - BLOB aus Datenbank

Beitrag lesen

Hallo liebes Forum,

seit Tagen quäle ich mich mit der Content-Length umher. Ich muss aus einer MySQL-Datenbank die in einem BLOB gespeicherten JPEG-Dateien ausgeben.

(Es sei an dieser Stelle bitte dahingestellt, ob es sinnvoll ist, Grafiken in einem RDBMS abzulegen oder nicht - danke! ;)

Das BLOB selbst wird über ein

$data = fread(fopen($tmpname,"rb"),$dateigroesse);

direkt in die Datenbank eingetragen.

Bei der Ausgabe der Grafik jedoch bin ich darauf angewiesen, die Content-Length mit auszugeben. Leider knallt es an dieser Stelle. Denn ein einfaches:

header("Content-Type: ".$typ);
header("Content-Length: ".$dateigroesse);
header("Content-Disposition: inline; filename=".$dateiname);
echo $datei_aus_db;

führt dazu, dass das Bild zwar korrekt ausgegeben wird, es aber offenbar nicht die richtige Content-Length übergeben bekommen hat. Die Browser-Downloadleiste bleibt stehen bis ein Abbruch erfolgt. Die Grafik ist aber voll übertragen.

Wenn ich die Content-Length ganz weglasse, klappt es wunderbar.

Ich habe schon alles probiert:

header("Content-Length: ".strlen(stripslashes($datei)));
header("Content-Length: ".strlen(chop(trim(stripslashes($datei)))));
header("Content-Length: ".strlen($datei));

Mit, ohne addslashes (auch beim Hochladen der Original-Dateien und deren Ablage in in Form der BLOB-Dateien). Mit mysql_real_escape_string und ohne. Mit Beachtung von set_magic_quotes_runtime und ohne....

Wie Ihr seht, bin ich am Verzweifeln.

Sicher hat schon einer von Euch ein ähnliches Problem gehabt?!

Würde mich über jeden auch noch so kleinen Hinweis ganz doll freuen...

* Connie *