Benutzer-Werkzeuge

Webseiten-Werkzeuge


db:mysql:file_upload

Dateien in einer MySQL-Datenbank speichern


BLOB - Binary Large Object

Binary Large Objects (BLOBs) sind große binäre Objekte wie z. B. Bild- oder Audiodateien.

Datentyp maximale Dateigröße
TINYBLOB 256 Bytes
BLOB 64 KB
MEDIUMBLOB 16 MB
LONGBLOB 4 GB

Beispiel

Ein mit FPDF erzeugtes PDF in einer MySQL-Datenbank speichern:

$pdf = new PDF();
...
 
$Binary = $pdf->Output( "", "S" ); // Datei als Zeichenkette ausgeben
$SQL = "INSERT INTO Dateien ( Binary ) VALUES ( :BINARY );"
$res = $this->DB->prepare( $SQL );
$pdf->Close();
 
if( $res->execute( array( ":BINARY" => $Binary ) ) )
	return true;

PDF-Datei aus Datenbank auslesen:

$SQL = "SELECT Binary FROM Dateien WHERE ID=" . $id;
$PDO = $this->DB->query( $SQL );
 
if( $PDO->rowCount() == 1 ) // wenn die Datei gefunden wurde
{
	$res = $PDO->fetch( PDO::FETCH_OBJ );
	header("Content-Type: application/pdf");
	header("Content-Description: File Transfer");
	header("Content-disposition:inline; filename=PDF_Dokument.pdf");
	echo $res->Binary;
	exit;
}

BLOB-Feld auf Inhalt prüfen

Mit dem folgenden mySQL-Statement werden alle Datensätze ausgegeben, die im BLOB-Feld „PDF“ Daten enthält.

SELECT * FROM Dateien WHERE LENGTH(PDF) > 0;
db/mysql/file_upload.txt · Zuletzt geändert: 2017/11/30 00:00 (Externe Bearbeitung)