Benutzerbild upload

goto;

Erfahrenes Mitglied
Guten Abend.
Hab eine Frage. Habe soeben einen Bilder Upload gebastelt, der auch einwandfrei Funktioniert. Jetzt ist meine Frage. Der eigentliche Grund wozu ich diesen gemacht habe ist: Das die Leute ein Benutzerbild hochladen können. Nur wie sage ich es dem script und der Datenbank ? :confused:

Hier mal den Code vom Upload
Code:
<?php
$dateityp = GetImageSize($_FILES['datei']['tmp_name']);
if($dateityp[2] != 0)
   {

   if($_FILES['datei']['size'] <  102400)
      {
      move_uploaded_file($_FILES['datei']['tmp_name'], "upload/".$_FILES['datei']['name']);
      echo "Das Bild wurde Erfolgreich nach upload/".$_FILES['datei']['name']." hochgeladen";
      }

   else
      {
         echo "Das Bild darf nicht größer als 100 kb sein ";
      }

    }

else
    {
    echo "Bitte nur Bilder im Gif bzw. jpg Format hochladen";
    }
?>

So an sich ist es ja jetzt nur da um einfach Bilder auf den server zu schmeißen.
 
Naja, du könntest bspw. so vorgehen:

Die Benutzer werden ja sicher in der DB gespeichert sein.

Das Bild speichere nicht unter dem Originalnamen, sondern benenne es um Anhand der ID des Benutzers. In der DB füge eine Spalte hinzu, in der du den Namen des Bildes speicherst(oder von mir aus auch nur den Grafiktyp, denn den Namen kannst du ja anhand der User-ID ermitteln).

Durch das Umbenennen entledigst du dich dann gleichzeitig des Problems, dass sich momentan gleichnamige Bilder verschiedener User überschreiben würden.
 
es gibt mehrere Möglichkeiten:

1) Upload und speichern in der selben Datenbank wie der Benutzer, achte aber hierbei darauf, dass es auch User gibt die keine Bilder uploaden, d.h. du hättest eine leere Spalte und das verstößt gegen die Grundsätze einer Datenbank.
Abhilfe könnte da ein Standardwert schaffen ("0" oder ähnliches)

2) Das Bild, welches du uploadest wird so umbenannt, dass das Bild z.B. ID.jpg (wobei ID die ID des Benutzers ist also z.B. "296.jpg")
In deinem Script hast du dann folgendes geschrieben:
PHP:
echo "<img src=\"userimg/". $userid . ".jpg\">";
d.h. das Script holt sich das Bild direkt aus dem Ordner aufgrund der aufgerufenen UserID.
Du brauchst das Bild nur beim Upload umzubennen, speichern in der Datenbank ist dann nicht nötig.
Bedenke aber auch hier, dass nicht jeder User ein Bild uploaden möchte und das es auch andere Dateiformate für Bilder geben kann!

3) Das Bild welches du uploadest wird umbenannt und in einem Ordner gespeichert, nebenbei wir das Bild in eine sperate Datenbank gespeichert, z.B. UserImg, diese könnte dann ungefähr so aufgebaut sein:
Code:
ID     UID    Picname         Pictyp
1       296    dsjfal32hrjk    jpg
Erklärung:
Der User mit der ID 296 hat ein JPG hochgeladen das jetzt unter dem Namen dsjfal32hrjk.jpg gespeichert ist. Das Bild selber hat die ID 1. Warum nochmal die ID? Es ist nach den Grundsätzen einer Datenbank immer notwendig jeden Datensatz eindeutig zu kennzeichnen bzw einen Primärschlüssel anzulegen welcher in keinem Datensatz gleich sein kann.
 
Zurück