Easy Coding
  Forum Wiki Tagging Projekte Karte RSS
» Start
» All Recent Changes
» Wiki Suche
» Wiki Hilfe

Coder How To's

Algorithmen Informationen

edit SideBar

Neue Wiki Eintrage finden Sie unter easy-coding.de/wiki.

Dateiupload in MySQL

Tabelle erstellen

  1. CREATE TABLE `Bilder` (
  2. `id` INT( 5 ) NOT NULL ,
  3. `bild` MEDIUMBLOB NOT NULL ,
  4. `filetype` VARCHAR( 50 ) NOT NULL ,
  5. PRIMARY KEY ( `id` )
  6. )

Info: In BLOB passen 64 kb; in MEDIUMBLOB ganze 16 MB In filetype wird der Dateityp gespeichert. Schließlich kann man neben JPG's auf GIF's, PNG's, etc hochladen. Sicherheitshinweis: Ich gehe davon aus, dass ihr wisst, was ihr tut. Theoretisch könntet ihr allerlei Scripte hochladen und damit den Server zum Absturz bringen.

Wobei man anmerken sollte das Datenbanken nicht dafür konzipiert sind ganze Dateien zu speichern. Dadurch belastet und überlädt man nur unnötig die Datenbank und es kann zu erheblichen Performance Problemen kommen.

Eine sinnvolle Alternative wäre, den absoluten Pfad der Datei in der Datenbank zu speichern und die Datei z.B mittels PHP (move_uploaded_file) hochzuladen.

mysql-upload.php
  1. <?
  2. if(isset($_POST['submit']))
  3. {
  4.         //MySQL Connect einfügen
  5.  
  6.         $pfad_zur_datei = $_FILES['img']['tmp_name'];
  7.         $data = addslashes(fread(fopen($pfad_zur_datei, "r"), filesize($pfad_zur_datei)));
  8.         mysql_unbuffered_query("INSERT INTO Bilder (id, bild, filetype)
  9.                 VALUES ('', '". $data ."', '".$_FILES['img']['type']."')");
  10. }
  11. ?>
  12.  
  13. <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
  14.         <input type="hidden" name="daten_id" value="1" />
  15.         <input type="file" name="img" />
  16.         <input type="submit" name="submit" value="Datei Upload" />
  17. </form>

Wie ihr die Dateien wieder auslest, erfahrt ihr im Tutorial: MySQL Dateien ausgeben

Weitere Informationen zu Datei Uploads unter PHP gibts im Manual: http://de.php.net/manual/de/features.file-upload.php

Zuletzt geändert am 27.02.2008 18:28 Uhr
  Impressum