Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Nadanie nowej nazwy dla obrazka? Jak?
Forum PHP.pl > Forum > Przedszkole
palixmp
Chciałbym, prosić o radę. Pisze serwis, gdzie każdy użyt może dodawać albumy ze zdjęciami i się zastanawiam, jak rozwiązać sprawę z nadawaniem nazw fotką przesłanym przez formularz. Mam coś takiego:
  1. <?php
  2. $nowa_nazwa=md5(rand()+rand()+rand()+1000*20*rand()).".".$ro; // wylosowanie nowej nazwy dla pliku i dodanie rozszerzenia
  3. ?>

Dodane zdjęcie jest w postaci : ffc9e94c4bb2e20d97c683719300084b.jpg i się tak zastanawiam czy jeśli będę miał np 1milion użytkowników i każdy z nich doda po 100fotek, czy jest możliwość że nazwy się powtórząquestionmark.gif Czy w tym jest taki mechanizm, że np te ciagi znaków się powtarzają co jakis okres?

Czy może lepiej to zrobić po prostu rosnąco? Wyciągać ostatni numer zdjęcia z bazy i dodawać do tego 1? Ale czy to jest poprawne?

Jakie jest najlepsze rozwiązanie Waszym zdaniem?
Crozin
Do generowania unikalnej nazwy lepiej skorzystać z uniqid(). I tak, w teorii istnieje szansa, że będzie już istaniło takie zdjęcie. Dlatego możesz się upewnić, że tak nie jest:
  1. <?php
  2.  
  3. $ro = 'png';
  4.  
  5. do{
  6.  $nowa_nazwa = md5(uniqid(mt_rand(), true)) . $ro;
  7. }while(file_exists($nowa_nazwa));
  8. ?>
Teraz masz pewność, że nazwa jest unikalna.
pyro
mała poprawka
  1. <?php
  2. $ro = 'png';
  3.  
  4. do{
  5.  $nowa_nazwa = md5(uniqid(mt_rand(), true)) . '.'.$ro;
  6. }while(file_exists($nowa_nazwa));
  7. ?>
sowiq
Cytat(palixmp @ 13.05.2009, 22:32:17 ) *
jeśli będę miał np 1milion użytkowników i każdy z nich doda po 100fotek
Chcesz trzymać 100 mln fotek w jednym katalogu? biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.