Dateien (Bilder) einzigartig benennen [Galerie]

ludz

Erfahrenes Mitglied
Hallo Leute,

was ist denn eurere Meinung nach die beste Variante, Bildern und Ordnern (stellen Kategorien in einer Galerie dar!) einzigartige Bezeichnungen zu geben:

Variante A: Bilder und Ordner erhalten jeweils ihre ID, unter der sie in der MySQL-Datenbank festgehalten sind, als Dateinamen (Bsp: 13.jpg, 7.png etc.)

Variante B: Für jedes Bild / jeden Ordner wird beim Speichern auf dem Server eine einzigartige ID erstellt und als Dateiname vergeben (Bsp: 92j234204jdfo.jpg oder so...).
Nur, wie erstelle ich so eine ID, was ratet ihr mir da? uniqid() ? ne ID aus nem timestamp? durch rand() ne Zeichenkette erstellen? microtime() irgendwas ?!

Gibts noch andere (bessere) Möglichkeiten?

Naja, beratet mich bitte einfach mal.
Danke
 
Hi ludz!

Ich habe das bei mir mal mittels einem Timestamp gelöst:
Habe Dir der Einfachheit halber mal den entsprechenden Skriptteil eingefügt:
Das ganze wird von einem Formular aufegrufen, in dem auch das Datum und die
Zeit als Variable drin sind.

PHP:
  if ($command==15) // Bildupload in ein Bildset
   {
   // Es werden 2 Bilder gleichzeitig (also hintereinander) hochgeladen
   
   // Testen ob eine der beiden Dateien gleich o ist.
    if ($file_size==0 OR $thumbfile_size==0)
   { echo $textwarning[20]; exit; }
   
   / Die Dateiendungen festlegen
   if ($file_type=="image/gif") $extension=".gif";
   if ($file_type=="image/jpeg" OR $file_type=="image/pjpeg")
   { $extension=".jpg"; }
   
   $timestamp=Date("dmYHis");
   //Den Filenamen festlegen 
   $filename=$timestamp."-1".$extension;
   // und dann endgültig ins Verzeichnis kopieren
   $error=copy($file,$pathimages.$filename);
   require("fileerror.php");
   
   // Wieder die Dateiendung festlegen
   if ($thumbfile_type=="image/gif") $extension=".gif";
   if ($thumbfile_type=="image/jpeg" OR $thumbfile_type=="image/pjpeg")
   { $extension=".jpg"; }
   
   //Wieder den Filenamen festlegen
   $filename=$timestamp."-1a".$extension;
   //und wieder kopieren
   $error=copy($thumbfile,$pathimages.$filename);
   require("fileerror.php");
   
   // und dann noch die Datenbank aktualisieren
   $filename=$timestamp."-1".$extension;
    $bildtitel=$bildtitel;
    $tabname="bilder".$id;
    @$outcome=mysql_query("INSERT INTO $tabname VALUES (NULL,'$filename','$adate','$atime','$bildtitel')");
    require("failure.php");
    
   }

Hoffe dir hilfts weiter

mfg Hoizwurm
 
Ein kleiner Tipp:

Du kannst den Bildern eine benutzerdefinierte Endung zuweisen, meinetwegen .hozi. das erleichtert dir die Suche nach den Bildern wenn du diese Ausliest.
Dem Browser sollte das prinzipiell egal sein, da er die Bilder nicht an der Dateierweiterung erkennt, sondern an der Dateidefinition, die ja schließlich in der Datei ist.
 
danke für die Antworten.
Ich denke, ich werde das Ganze nun auch mittels time() lösen ($dateiname=time().$dateiendung;).

eine Frage an dich hoizwurm: Was hat dieses "-1" in deinen Dateinamen immer zu bedeuten?
 
Hallo ludz!

Das ist einfach nur eine Erleichterung für mich zum Erkennen der einzelnen
Dateien. Bei diesem Script werden 2 Dateien hochgeladen, das normal große Bild
und das kleiner Vorschaubild.

"-1" ist das Originale Bild und "-1a" ist das Vorschaubild.

Das Script ist noch aus der Zeit als die Imagefunktionen noch ein Spanisches
Dorf für mich waren. Habe die Vorschaubilder händisch zuhause am Rechner
umgewandelt und dann halt extra hochgeladen.

Habe mir damals die Sache von einem einfachen Newsscript abgeschaut.

Ist also so was in der Art wie eLorFiN gemeint hat.

mfg Hoizwurm
 
Zurück