2010-12-06 9 views

Antwort

25

Normalerweise erzeuge ich entweder eine UID mit der Funktion uniqid() für den Dateinamen oder erstelle einen Ordner mit dem Namen des Benutzernamens, der die Datei hochlädt und den ursprünglichen Dateinamen behält. Der Nachteil des ersten ist, dass Sie den ursprünglichen Dateinamen irgendwo speichern müssen, um es dem Benutzer zu zeigen.

+0

danke, genau das, was ich gesucht habe. – Adamski

4

Sie könnten den Unix-Zeitstempel verwenden, als die Datei hochgeladen wurde. Wenn Sie mehrere Uploads gleichzeitig erwarten, können Sie eine eindeutige Benutzer-ID oder einen Teil des ursprünglichen Dateinamens anhängen.

+0

Gute Idee, microtime() eignet sich hervorragend für einen Einzelfall. – Melsi

1

$ username. $ Zeitstempel. $ Random

oder Sie können diese Hash wenn man die Leute nicht wollen Details wissen, wann es hochgeladen wurde und von wem

1

So etwas wie:

md5(date('Y-m-d H:i:s:u')); 

http://php.net/manual/en/function.uniqid.php

Sie auch in mit einem Hash von Dateien Inhalt wie der Suche berücksichtigen können

Sh könnte gut funktionieren.

+8

Hashes sind nicht eindeutig. – afilina

+0

@afilina Warum sind Hashes nicht einzigartig? –

+0

Es besteht die Möglichkeit einer Kollision mit MD5 oder einer Hash-Funktion, aber das ist für die meisten Anwendungsfälle unwahrscheinlich. Meine ursprüngliche Antwort ist von 2010. Verwenden Sie sha256, die Möglichkeit einer Kollision ist sehr, sehr niedrig https://stackoverflow.com/questions/4014090/is-it-safe-to-ignore-the-possibility-of-sha-collisions -in der Praxis – systematical