spoeppi: Binärdaten in einer MySQL-Tabell speichern und ausgeben

Beitrag lesen

Hallo Leute,
ich möchte eine Datei (z.B. WORD) in einer mysql Tabelle speichern. In die Tabelle bringe ich die Daten auch, nur kann ich sie nicht mehr auslesen.
Beim aufrufen erkenne ich zwar das es z.B ein Word Dokument bzw. ist auch der Name richtig, aber die Größe stimmt nicht bzw. kann sie auch nicht geöffnet werden.
Ich kann die Datei zwar speichern, dann stimmt auch der Name bzw. Typ aber die Größe ist immer 1KB und die Datei ist lehr.

// meine Tabelle

CREATE TABLE anhang (
id int(11) NOT NULL auto_increment,
dateiname varchar(225) collate latin1_general_ci NOT NULL default '',
dateigroesse int(11) NOT NULL default '0',
dateityp varchar(225) collate latin1_general_ci NOT NULL default '',
daten mediumblob NOT NULL,
PRIMARY KEY (id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci AUTO_INCREMENT=15 ;

// eingabe Befehl

PHP-Quellcode:

<?php
$data = addslashes(fread(fopen($_FILES['anhang']['tmp_name'], "r+"), $_FILES['anhang']['size']));

$query="INSERT INTO anhang (dateiname,dateigroesse,dateityp,daten) ".
         "VALUES ('".$_FILES['anhang']['name']."', '".$_FILES['anhang']['size']."', '".$_FILES['anhang']['type']."', '".$data."')";

$result=mysql_query($query);
?>

// eingabe zelle
<th> appendix:</th><td colspan="3"><input type="file" id="anhang" name="anhang" size="80"/> </td>

// ausgabe script

PHP-Quellcode:

<?php
$SQL = "SELECT dateiname, dateigroesse, dateityp, daten FROM anhang WHERE id=$id";
   $ResultPointer = mysql_query($SQL, $dbh);
   $Result=mysql_fetch_object($ResultPointer);

header("Content-type: ".$Result->dateityp);
   header("Content-length: ".$Result->dateigroesse);
   header("Content-Disposition: attachment; filename=".$Result->dateiname);
   echo $data->Daten;
?>

Natürlich habe ich zuerst alle anderen Beiträge zu dem Thema gelesen bin nur leider nicht schlau daraus geworden.
Ich hoffe ihr könnt mir dabei helfen.
Danke