Dateien ablegen in MySQL-Datenbank

Alles, was MySQL betrifft, kann hier besprochen werden.

Dateien ablegen in MySQL-Datenbank

Postby waltraud28b » 17. March 2003 14:33

Hallo,

ist es möglich, in einer MySQL-Datenbank komplette Dateien z.B. mit der Endung .doc, .pdf, .ppt usw. abzulegen ?

Wenn ja, wie lautet die Definition der entsprechenden Spalte?

Gruß
Michael
waltraud28b
 

Postby FuzzyWutz » 11. April 2003 09:49

Willst du deinen Datenbank sprengen???? :roll:

Warum speicherst du nicht die Dateinamen incl. kompletten Pfad in einer Tabelle und legst die Daten in ein Verzeichnis auf das PHP zugreifen kann??

Ansonsten (wenn du deine Datenbank explodieren lassen willst!) geht IMHO nur Text, welches aber auf 64k beschränkt ist und den Dateinamen musst du in ein extra Feld speichern.... aber diesen letzten Tipp hast du nicht von mir, sonst schlachten mich die SQL-Programmierer....
FuzzyWutz
 

Postby Oswald » 11. April 2003 10:58

Huhu Michael, huhu Fuzzy,

der korrekte Datentyp in MySQL für sowas wie Dateien ist BLOB. Klingt komisch, ist aber wahr.

Ein BLOB hat übrigens eine maximale Größe von 64K. Es entspricht letztendlich dem TEXT-Type. Wer mehr braucht nimmt entweder MEDIUMBLOB mit 16MB oder LONGBLOB mit einem Maximum von 4GB.

Nun muss man aber auch noch die Daten in die Datenbank kriegen und das ist auch nicht so einfach. Hier schon mal ein kleiner PHP-Code-Schnipsel der eine Datei in eine MySQL-Tabelle schreibt.

Code: Select all
$filename="/lala/lolo/huhu.gif";
$data = addslashes(fread(fopen($filename, "r"), filesize($filename)));
mysql_query("INSERT INTO IMAGES (I_DATA) VALUES('$data')");


Liebe Grüße,
Oswald ;)
User avatar
Oswald
Apache Friends
 
Posts: 2718
Joined: 26. December 2002 19:51
Location: Berlin, Germany
XAMPP Version: 5.5.19
Operating System: Linux


Return to MySQL

Who is online

Users browsing this forum: No registered users and 4 guests