PHP Upload - Dateinamen verändern

Hallo Community,
ich habe mich bei euch mal umgeguckt und ich muss sagen, dass es nett bei euch ist. :slight_smile:

Kommen wir zu meiner Frage:
Ich lerne gerade PHP und habe mir zur Aufgabe gemacht, ein Bilduploadscript zu schreiben. Bisher klappt alles auch schon ganz gut. Allerdings möchte ich, wenn das Bild hochgeladen wird, dass der Dateiname (Beispiel: hansimbrunnen.jpg) umbenannt wird, sodass es keine verwechselbaren Uploads geben kann.

Liebe Grüße

– der imager

google?
lmgtfy.com/?q=Dateinamen+ver%C3%A4ndern+%2B+php
google.ch/search?q=Dateiname … p&ie=utf-8

Hi,

klar geht das.
Du kannst z.B. eine Zufällige Zahlenkombination vor den Dateinamen schreiben.
Generiert wird eine solche mit etwa einen solchen Code:

$random = round(rand(0,9)) .  round(rand(0,9)) .  round(rand(0,9)) .  round(rand(0,9)) .  round(rand(0,9));

@fishi
ich würds gleich beim upload richtig speichern und nicht im nachhinein umbenennen :wink:

[quote]@fishi
ich würds gleich beim upload richtig speichern und nicht im nachhinein umbenennen :wink:[/quote]Jab, sehe ich genau so :p

@Der_Admin: wieso rundest du eine Zahl, die sowieso ganz ist? rand() gibt doch eine Ganze zahl zurück.

Ich finde deine Variante ist eher „unschön“, da es bei vielen bildern dann schnell mal zu komplikationen kommen kann.

ich würde eher sowas verwenden:$name = uniqid(rand());

de.php.net/manual/en/function.mo … d-file.php
Dort kann man dann als Zielpfad den neuen Dateinamen angeben.

Was ich auch häufig gesehen hab, ist es für die Dateinamen den md5-hash der Datei zu verwenden. Auf diese Art sind Doppelte Dateien nahezu ausgeschlossen (Allerdings mit dem Risiko das Kollisionen auftreten könnten, was aber ziemlich unwahrscheinlich ist).

mfg Balmung

@Der Admin: Was soll denn das bitte sein? Im Endeffekt ist es das gleiche wie das:

Allerdings würde ich eher eine DB-gestützte variante mit einer UNIQUE-ID verwenden, und die muss auch nicht random sein (Zählen, Nicht geradliniges Zählen (1, 6, 4, …), Hashen, …).