automatisch naar iets randoms hernoemen

Status
Niet open voor verdere reacties.

martijn12321

Gebruiker
Lid geworden
14 nov 2011
Berichten
827
Hallo,
is het mogelijk om een (geuploade) video+foto automatisch te hernoemen naar iets randoms? Voorbeeld: Ik upload de video "test1.mp4" en "afb173848.jpg" en ze worden dan hernoemd naar "he83h.mp4" en "he83h.jpg" (dus beide zelfde naam). Verder is het ook de bedoeling dat er word gelet dat de bestanden niet worden genoemd naar iets wat al bestaat. Het mag natuurlijk ook zijn dat de nieuwe naam uit alleen letters of alleen cijfers bestaat, maar beide is het fijnste :)
Bedankt!
 
Bij het uploaden via move_uploaded_file() kun je de bestandsnaam direct bij $destination al wijzigen.

Kwestie van eerst je random string genereren, dan checken of ie al bestaat (zo niet, opnieuw genereren, kan je een recursieve functie voor schrijven) en dan je upload-acties uitvoeren.
 
Zo zou die recursieve functie waar Tha Devil het over heeft eruit kunnen zien.
Code:
function generateRandomString(){
     $random = unique();
     if(file_exists($random . '.jpg'))
             generateRandomString();
     return $random;
}
 
Dit garandeert geen uniekheid, het gegenereerde getal wordt niet gereserveerd. De kans is niet groot, maar de kans dat je twee keer dezelfde waarde voor 'unique' gaat krijgen is ook niet groot.

Maar ik ben wel benieuwd naar waarom je een willekeurige string wilt, want dan vindt je het bestand nooit meer terug. Wat men in dit soort gevallen vaak doet is de upload loggen in een database, zodat de database een nieuw id genereert die wel absoluut uniek is en die dan weer als bestandsnaam gebruikt kan worden.


ps: Microtime heeft elke microseconde een nieuwe waarde dus de kans dat je daarmee dubbelen genereert is ook nuhil, maar microtime is een stuk eenvoudiger op te roepen dan een recursieve "bestaat-ie-al" controle.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan