Ankündigung

Einklappen
Keine Ankündigung bisher.

Bei Mehrfachupload wir immer der selbe md5 hash generiert

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bei Mehrfachupload wir immer der selbe md5 hash generiert

    hallo,
    ich versuche mich an einen mehrfachupload für bilder.insgesamt sollen 3 auf einmal hochgeladen werden können.
    wenn ich jetzt die bilder unbenennen will habe ich schwierigkeiten.
    PHP-Code:
       $dateiname $_FILES['datei']['name'][0];
       
    $getrennt explode ('.',$dateiname);
       
    $getrennt array_reverse ($getrennt);
       
    $endung $getrennt[0];
       
    $md5 md5 (time ());
       
    $datei $md5.'.'.$endung
    mit md5 (time ()) liefert er mir immer exakt die gleichen namen was mir auch klar ist warum.ich habe auch schon versucht md5 + $dateinamen.dann werden aber doppelte überschrieben was ja auch nicht sinn der sache ist.deshalb meine frage:
    habt ihr einen tip wie ich 3 bilder gleichzeitig unbenennen kann ohne das ich doppelte dateinamen erhalte.
    ich weiß auch das ich alles in ein array machen kann aber bekomme dieses nicht hin deshalb erhalte ich die bilder so:
    PHP-Code:
    $dateiname $_FILES['datei']['name'][0];
    $dateiname $_FILES['datei']['name'][1];
    $dateiname $_FILES['datei']['name'][2]; 
    und bearbeite alle einzelt.
    ich hoffe ihr könnt mir helfen!

  • #2
    Generier doch einfach einen zufälligen Namen?!

    Kommentar


    • #3
      wie wärs mit microtime, uniqid?

      Alternativ mit einer while-Schleife zählen und ne Zahl an den Dateinamen hängen.

      Kommentar


      • #4
        Hast du einen Ansatz für mich wie ich da ran gehen muss

        Kommentar


        • #5
          Den Ansatz hat er gerade genannt.

          Kommentar


          • #6
            Beispielsweise folgendes:
            PHP-Code:
            $unique_id uniqid(''true);
            $datei $unique_id.'.'.$endung

            Kommentar


            • #7
              Ok erstmal vielen dank an allen.wenn ich das jetzt mit microtime mache dann scheint es zu funktionieren.
              PHP-Code:
                 $dateiname $_FILES['datei']['name'][0]; 
                 
              $getrennt explode ('.',$dateiname); 
                 
              $getrennt array_reverse ($getrennt); 
                 
              $endung $getrennt[0]; 
                 
              $md5 md5 (microtime ()); 
                 
              $datei $md5.'.'.$endung
              kann mir einer den unterschied zwischen time und microtime erklären?
              die bilder werden ja im gleichen moment hochgeladen,ich verstehe das noch nicht so ganz.gehe ich mit mircotime den jetzt auf nummer sicher und es werden keine bilder überschrieben?
              @Nikosch
              sry hatte grade meine Antwort verfasst als Dark_Guardian gepostet hatte

              Kommentar


              • #8
                http://php.net/manual/de/function.time.php

                http://php.net/manual/de/function.microtime.php

                Der Unterschied in deinem Fall ist das dein Script an jener Stelle weniger als eine Sekunde läuft und somit time() immer die gleiche Zeit liefert weswegen du dich mit microtime() auf die Ebene der Mikrosekunden begibst.

                Kommentar


                • #9
                  md5 vom file_content ? Ich geh mal davon aus das du schon dafür sorgen willst das da nicht einer 3 mal das selbe bild hochladen kann..

                  Prinzipiell sonst combined-content Hash aus relativ einzigartigem Content:
                  PHP-Code:
                  hash('sha256'$UserID.$IP.$OriginalFilename.$UploadDate.$UploadMicroTime.randomized(1000)); 
                  möglichkeiten gibs genug, aufgrund der "einzigartigkeit der hochgeladenen Dateien" würd ich aber eher den dateinamen aus numericUserID und FileContentHash kombinieren.

                  Kommentar


                  • #10
                    PHP-Code:
                    md5(microtime() . md5_file()) 
                    wäre ne Variante. Bzw. das selbe mit sha1.

                    sry hatte grade meine Antwort verfasst als Dark_Guardian gepostet hatte
                    Sorry hatte ich nacher dann auch gesehn. Mein Fehler.

                    Kommentar


                    • #11
                      Ein Hash von einem Zeitstempel (allein) ist irgendwie unsinnig, schliesslich ist ein Zeitstempel eindeutig und wiederholt sich auch nicht (es sei denn, jemand programmiert ne Zeitmaschine )

                      Kommentar

                      Lädt...
                      X