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

Beitrag lesen

Moin!

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.

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

Auch für dich gilt: Schreiben in die Datenbank NUR mit mysql_real_escape_string(), NICHT mit addslashes()!!!

addslashes maskiert weniger Bytes, von denen einige in Binärdatenströmen störend wirken, wenn sie nicht maskiert werden.

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

Alle Angaben in $_FILES sind komplett vom User definierbar. Wenn du die nicht durch mysql_real_escape_string() jagst, bist du anfällig für Code Injection!

- Sven Rautenberg

--
My sssignature, my preciousssss!