Autor | Zpráva | ||
---|---|---|---|
Demoniak Profil |
#1 · Zasláno: 23. 7. 2015, 14:51:06
Ahoj, babrám se v takové blbosti.
uploaduju fotky a pojmenovávám je pomocí funkce rand();. Všechno funguje až do doby, než začnu kontrolovat, zda-li soubor již neexistuje a v tom případě chci funkci spustit znovu aby nastavila nová náhodná čísla. Funkce: function nahodne_cislo($pocet,$slozka){ $nahodnecislo = ""; for ($i = 1; $i <= $pocet; $i++){ $cislo = rand(0, 5); $nahodnecislo = $nahodnecislo . $cislo; } if (!is_file($slozka.$nahodnecislo.".jpg")){ return $nahodnecislo; }else{ nahodne_cislo($pocet,$slozka); } } Upload fotek: if (isset($_POST['ok'])){ try{ include "simpleimage.php"; $slozka = "fotky/novinky/"; $nazev = nahodne_cislo(1,$slozka); $fotka = $nazev.".jpg"; $img = new abeautifulsite\SimpleImage(); $img -> load($_FILES["fotka"]["tmp_name"]) -> save($slozka . $fotka); $img -> load($_FILES["fotka"]["tmp_name"]) -> save($slozka ."thumb_". $fotka); echo "Fotka ". $_FILES["fotka"]["name"] . " byla nahrána do ".$slozka.$nazev.".jpg"; } catch(Exception $e) { echo 'Error: ' . $e->getMessage(); } } Všechno funguje, jen se někdy fotky neukládají s názvem (fotka se uloží jako ".jpg" místo např. "0.jpg"). Poradíte mi prosím kde by mohla být chyba? |
||
Alphard Profil |
#2 · Zasláno: 23. 7. 2015, 15:01:26
Při volání rekurze tam chybí return.
|
||
Demoniak Profil |
#3 · Zasláno: 23. 7. 2015, 15:17:17
Výborně, myslel jsem si, že to bude prkotina, ale tohle by mě nenapadlo. Díky :)
|
||
Keeehi Profil |
#4 · Zasláno: 23. 7. 2015, 17:17:26
Demoniak:
Nebo nevymýšlej kolo a použij pro to funkci přímo určenou. php.net/manual/en/function.tempnam.php Nebo soubory pojmenovávej hashem jejich obsahu. Tam teoretická možnost kolize existuje ale v drtivé většině případů je zanedbatelná. |
||
Časová prodleva: 9 let
|
0