RuD: Wie >unique< ist die UniqueID ?

Seid gegrüßt!
ich habe vor einen Bildupload anzubieten. Da ich aber alle Bilder in einem Ordner speichern will, und es ja schließlich vorkommen kann, dass mehrere Bilder den selben (Standart-)Namen haben (z.B. Bild1.jpg), möchte ich die Bilder umbenennen und per DB dem jeweiligen Nutzer zuordnen.

Meine Momentane Idee ist eine 10stellige ID(AlphaNum) zufällig zu generieren und dann über prüfen, ob eine Datei mit der ID schon existiert und dann speichern, oder gegebenenfalls von orn anfangen (ID->Überprüfung->speichern/Beginn).

Nun kam mir aber die Idee mit der UniqueID, so dass ich erstens die Schleife spare mir ne ID selbst zu generieren und (im Fall die UniqueID ist unique[einzigartig]) auch die Überrpüfung, ob die Datei schon existent ist.

Welche der beiden Lösungen ist die bessere? Ich bin gespannt, auf evtl. sogar noch andere Lösungen.

--
Bis Später
    
________________________________________________________________
[Testversion meiner Seite] [Zwei unterwegs in Australien]
SelfCode: ie:% fl:( br:^ va:) ls:< fo:| rl:( n4:& ss:) de:> js:| ch:| mo:| zu:)
  1. Hallo,

    Bilder in einem Ordner speichern will, und es ja schließlich vorkommen kann, dass mehrere Bilder den selben (Standart-)Namen haben

    ich stand vor dem gleichen Problem. Faul wie ich bin hab ich mir den Dateinamen über tempnam() besorgt.

    Grüße,

    Jochen

    --
    Kritzeln statt texten:
    Scribbleboard
    1. Seid gegrüßt!

      ich stand vor dem gleichen Problem. Faul wie ich bin hab ich mir den Dateinamen über tempnam() besorgt.

      Ok ist auch ne Lösung. Aber wie einzig artig ist so ne UniqueID? Gibt es da Erfahrungen irgendeiner Art?

      --
      Bis Später
          
      ________________________________________________________________
      [Testversion meiner Seite] [Zwei unterwegs in Australien]
      SelfCode: ie:% fl:( br:^ va:) ls:< fo:| rl:( n4:& ss:) de:> js:| ch:| mo:| zu:)
      1. Aber wie einzig artig ist so ne UniqueID? Gibt es da Erfahrungen irgendeiner Art?

        benutze seit geraumer Zeit
        $uid = md5(uniqid(microtime(), 1));

        und habe bisher keine schlechten Erfahrungen gemacht selbst wenn ich mehrere hundert ids erzeugt habe...

        1. Seid gegrüßt!

          Aber wie einzig artig ist so ne UniqueID? Gibt es da Erfahrungen irgendeiner Art?

          benutze seit geraumer Zeit
          $uid = md5(uniqid(microtime(), 1));

          Das ist dann die sicherste Variante? Könnte ich da die Überprüfung auf Dopplung weglassen?

          --
          Bis Später
              
          ________________________________________________________________
          [Testversion meiner Seite] [Zwei unterwegs in Australien]
          SelfCode: ie:% fl:( br:^ va:) ls:< fo:| rl:( n4:& ss:) de:> js:| ch:| mo:| zu:)
  2. Hallo RuD,

    zur Unique-ID kann ich dir nichts genaues sagen, aber auch ich hab mich für die MD5()-Variante entschieden. Dadurch stehen mir nicht nur 10 Stellen zur Verfügung sondern 32. Auch ich war aber faul und hab deshalb keine Prüfung auf Dopplung eingebaut, obwohl diese ja theoretisch vorkommen kann.

    Doch die Wahrscheinlichkeit das dies tatsächlich geschieht, ist wohl weit geringer, als die 10 mal hintereinander den Lotto-Jackpot zu gewinnen und dann bei der Geldübergabe 5 Mal vom Blitz getroffen zu werden... Ich möchte noch anmerken, dass ich noch nicht einmal einen 3er im Lotto hatte und das in meinem Dateiverzeichniss selten mehr als 1000 Dateien gleichzeitig stecken...

    Grüße
    Max

    1. Hallo Max,

      ... ich hab mich für die MD5()-Variante entschieden. Dadurch stehen mir nicht nur 10 Stellen zur Verfügung sondern 32.

      Wenn ich http://de.php.net/manual/de/function.uniqid.php richtig interpretiere sind es 13. Aber egal. Was ich nicht verstehe wie du mit md5() auf 32 Stellen kommen willst?

      Wenn uniqid ("") eine unique ID liefert wird sie durch ein zusätzliches md5 nicht zufälliger. Gleiche ID = gleicher MD5 Hash.

      Grüße,

      Jochen

      --
      Kritzeln statt texten:
      Scribbleboard
  3. Hallo Forum,

    ich habe vor einen Bildupload anzubieten. Da ich aber alle Bilder in einem Ordner speichern will, und es ja schließlich vorkommen kann, dass mehrere Bilder den selben (Standart-)Namen haben (z.B. Bild1.jpg), möchte ich die Bilder umbenennen und per DB dem jeweiligen Nutzer zuordnen.

    Du hast in deiner Datenbank doch sicher eine Tabelle, die die Bilder über die Dateinamen den Benutzern zuordnet, nicht wahr?

    Dann erzeuge doch einfach zuerst den Eintrag für das Bild und nimm dann den Primärschlüssel als Dateinamen, dann kümmert sich das DBMS um die Singularität der Dateinamen, auch auf MP-Systemen und unter unerwarteten Umständen.

    Gruß
    Alexander Brock

    1. Seid gegrüßt!

      Hallo Forum,

      ich habe vor einen Bildupload anzubieten. Da ich aber alle Bilder in einem Ordner speichern will, und es ja schließlich vorkommen kann, dass mehrere Bilder den selben (Standart-)Namen haben (z.B. Bild1.jpg), möchte ich die Bilder umbenennen und per DB dem jeweiligen Nutzer zuordnen.

      Du hast in deiner Datenbank doch sicher eine Tabelle, die die Bilder über die Dateinamen den Benutzern zuordnet, nicht wahr?

      Ja aber nicht nur ein Bild pro User. Sondern mehrere.

      --
      Bis Später
          
      ________________________________________________________________
      [Testversion meiner Seite] [Zwei unterwegs in Australien]
      SelfCode: ie:% fl:( br:^ va:) ls:< fo:| rl:( n4:& ss:) de:> js:| ch:| mo:| zu:)