MySQL-BLOB

Hallo,
ich arbeite noch an dem Projekt wie aus meinen vorherigen Artikeln.
Habe soweit auch alles hinbekommen.
Jetzt kommt wohl der schwierige Teil des Projektes.

In der MySQL-Datenbank sind die PDF-Dateien als Binärcode im BLOB (Typ: mediumblob) abgespeichert.
Diese Dateien möchte ich jetzt über PHP aufrufen.
PHP müsste die Binärdatein auslesen, in einen Temp-Ordner in eine PDF-Datei umwandeln (der Name der PDF-Datei ist in der Datenbank gespeichert) und anschließend die PDF öffnen.

in der Datenbank sieht das ganze so aus:
mystream.Type = adTypeBinary
mystream.Open
mystream.Write rstSTR(PD)
strTemp= Pfad(„Temp“)
strFile = strTemp & „temp_“ & rstSTR(PDn)
mystream.SaveToFile strFile, adSaveCreateOverWrite
'Me(„imgBild“ & n).Picture = strFile
RetrieveBinDataFromMYSQLDB = strFile
'Kill strFile

Wie mache ich das in PHP?

mit freundlichen Grüßen
Thomas

habe mir das jetzt mal so zurechtgereimt, aber es funktioniert nicht.
Vielleicht ist es ja schon mal ein Lösungsansatz?

 if($\_REQUEST['action']=="pdfo")
 {
 $filename=mysql\_query("SELECT Dateityp FROM tabellenname WHERE Id={$\_REQUEST['Id']};"); // Name der Datei + .pdf

 $binaer=mysql\_query("SELECT Daten FROM tabellenname WHERE Id={$\_REQUEST['Id']};"); //Binärdatein aus Datenbank auslesen

 
 $few = unpack("c2chars/nint", $binarydata); // oder muss in der Klammer die Variable stehen?
 $fp1 = fopen($binaer, "b");

 }

Hallo,

Hallo

In der MySQL-Datenbank sind die PDF-Dateien als Binärcode im
BLOB (Typ: mediumblob) abgespeichert.
Diese Dateien möchte ich jetzt über PHP aufrufen.
PHP müsste die Binärdatein auslesen, in einen Temp-Ordner in
eine PDF-Datei umwandeln (der Name der PDF-Datei ist in der
Datenbank gespeichert) und anschließend die PDF öffnen.

Also die Ausgabe poste ich gleich, aber wieso ist es nötig zuerst in den temp-ordner zu speichern? Hier mal meine Lösung zur direkten ausgabe. Felder in der DB: idpdf(laufnummer),imgdata(mediumblob),imgtype(application/pdf)

Wie mache ich das in PHP?

$result=mysql_query(„select imgdata,Imgtype from pdf where idpdf=’$idpdf’“);
$row=mysql_fetch_assoc($result);
header(„Content-type: {$row[‚Imgtype‘]}“);
$fileext = „.pdf“;
$filename = „$idpdf$fileext“;
header(„Content-Disposition: attachment; filename=$filename“);
echo $row[imgdata];

mit freundlichen Grüßen
Thomas

MfG
pherson

Vielen Dank für deinen Quellcode!

Ich das bei mir noch etwas umgebaut und bei mir eingefügt und bekomme folgende Fehlermeldung:

Warning: Cannot modify header information - headers already sent by (output started at C:\Xampp\htdocs\Projekt\Hauptfenster.php:17) in C:\Xampp\htdocs\Projekt\Hauptfenster.php on line 124

Warning: Cannot modify header information - headers already sent by (output started at C:\Xampp\htdocs\Projekt\Hauptfenster.php:17) in C:\Xampp\htdocs\Projekt\Hauptfenster.php on line 127

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]