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