Ein Bild mit PHP abspeichern in Mysql
-
Hallo möchte Bilder Uploaden und diese in Mysql Datenbank speichern.
aber irgendwie gibt es probleme damit.
habe mir eine Tabelle angelegt.
mysql> create table bilder (
Name char(50),
bild MEDIUMBLOB);bekomme immer folgende Fehler Meldung.
Warning: fread(): supplied argument is not a valid stream resource in.....
<?php mysql_connect("localhost","",""); mysql_select_db("test"); print "<html><head><title>Bild in eine mysql Datenbank einspeisen mit PHP</title></head> <body>"; $bild=addslashes(fread(fopen($datei, "r"), filesize($datei))); $Name=$HTTP_POST_FILES['datei']['name']; mysql_query("insert into bilder(Name,bild) values ('$Name','$bild')"); $zahl= mysql_insert_id(); echo "Der Name des Files ist ".$HTTP_POST_FILES['datei']['name']."<br>"; echo "Der Grösse des Files ist ".$HTTP_POST_FILES['datei']['size']."<br>"; echo "Der File ist vom Typ: ".$HTTP_POST_FILES['datei']['type']."<br>"; echo "Der Name des Files ist ".$HTTP_POST_FILES['datei']['name']."<br>"; $dateiname=$HTTP_POST_FILES['datei']['name']; echo "Der File wurde upgeloaded. Die Nummer des Bildes ist $zahl"; print "</body></html>"; ?>
Gruß Peer
-
Was könnte man denn aus der gezeigten Fehlermeldung gaaanz vielleicht für einen Schluss ziehen!?
Ansonsten: Woher kommt die Variable $datei?
(P.s. Datenbanken sind nicht dafür gedacht, als Speicher für Binärdaten zu agieren. Ich halte deine Idee für ein grundlegend falsches Konzept ...)
-
Allgemein finde ich es auch falsch, Bilder in einer Datenbank zuspeichern. Du kannst die Bilder als Datei normal auf der Festplatte speichern und in die Datenbank nur Zusatzinformationen wie Dateiname, Pfad, Größe, Datum, .. um darin z. B. schnell suchen zu können.
Vielleicht schilderst du ja uns noch dein Vorhaben.
**
Zu deinem Quellcode:**Warum machst du addslashes()?
Möchtest du nicht die reinen Binärdaten speichern?Mach doch einfach:
$bild = file_get_contents('xy.jpg');
PS: Benutze statt char(50) lieber varchar(50).
-
hallo,
habe denn fehler gefunden , habe vergessen den pfad anzugeben.