Bildupload eigenen Bildernamen vergeben

  • Hi Leute

    Habe mir euer Bildupload ( https://www.forum-hilfe.de/viewtopic.php?t=16788 ) Tutorial eingebaut. Ich habe nun allerdings bedenken, dass wenn zwei Benutzer den selben Bildnamen verwenden.
    Suche also eine Lösung um einen eigenen, meinetwegen zufallsgenerierten Bildnamen zu vergeben sobald das bild hochgeladen wird. Ich verwende die Variante mit MySQL Datenbank.


    Markus

  • Code
    $dest = $ordner."/".$bild_name;


    Da musst du dann eben nicht $bild_name, sondern einen künstlich generierten dateinamen verwenden. Die funktion uniqid könnte dir dabei behilflich sein.

  • ohje, ich kriegs doch nicht ganz hin...

    habe uniqid an folgender stelle ins skript eingebaut.
    $bild_name = md5(uniqid(""));

    es klapt eigentlich alles wie es soll. das bild wird heraufgeladen und erhält einen anderen namen. in der datenbank wird dann derselbe name eingetragen, aber das bild hat nun keine dateiendung (jpg, gif, png, jpeg) mehr. Es hat lediglich einen namen wie zB. "f4bd5e8376ad9e730ea6f7d14217dfe6" in der datenbank hat es den selben namen. wie kriegt man es nun hin, dass die endung übernommen wird? ich verstehe leider noch nicht genug von der materie.

    imho ist das skript ohne so eine rename funktion nicht ganz ausgereift, obwohl es ansonsten klasse ist. wenn ihr mir helfen könntet die dateiendungssache zu fixen würde ich im namen aller danach im tutorial einen kleine zusammenfassung nachtragen wo erklärt wird wie man das ganze perfekt macht.

    habe mal ein wenig gegoogelt http://www.google.ch/search?client=…nG=Google-Suche
    und diverse skripte gefunden die upload machen und dateinamen umbenennen, jedoch keines mit datenbankanbindung:-(

    markus

  • So?

    Code
    $bild_name = "'".md5(uniqid(\"\"))."'.jpg";

    wobei ich nicht verstehe, wozu das md5 gut sein soll.
    Warum verschlüsselst du den Dateinamen?

    Ansonsten würde ich es eher so machen:

    Code
    //einen String erzeugen, der die Datei eindeutig identifiziert
    $id = uniqid(rand());
    //vom upload den originalnamen beibehalten und durch die id ergänzen
    $bild_name = "'".$id."''".$_FILE['bild']['name']."'";


    Damit behältst du den Originalnamen der Datei, und damit auch deren Endung, bei, und hast trotzdem einen individuellen Dateinamen. Es sei denn, 2 Nutzer laden in der selben Microsekunde ein Bild mit gleichem Namen hoch ^^

    Gruß,
    Jojo


  • Hallo zusammen,

    Ich möchte mich auch noch kurz für deine Hilfe bedanken...
    Nach was muss ich suchen wenn ich denn neuen Dateiname beibehalten möchte und dann einfach noch die Dateiendung anfügen möchte...