Zadejte hledaný výraz...

PHP MySQL – ukládání (pojmenování) souborů

mcever4
verified
rating uzivatele
20. 6. 2017 11:39:33
Ahoj, potřeboval bych trochu popostrčit.
Jedná se o nahrávání souboru, pojmenovaní souboru a následné uložení do DB.
z formuláře vložím soubor (cca 2MB), ten nahraji na server, následně soubor přejmenuji a uložím jméno souboru s id do tabulky v DB.
Jak řešíte pojmenování souborů, aby měl soubor pokaždé jiné jméno? Moje řešení je tabulka s čísly kde se vezme poslední číslo přičte se jednička a to číslo se použije pro pojmenování souboru. Bohužel toto mi nefunguje, protože než se přečte poslední číslo, přičte jednička a uloží se další záznam, tak se dotazuje druhý uživatel a dostává stejné číslo jako ten první.
druhá možnost která mě napadla je vložit prázdný záznam do tabulky, pak pomocí mysql_insert_id() zjistit id posledního záznamu a to použít na jméno souboru a pak udělat update záznamu a uložit do něj další informace o souboru.
třeba jdu špatnou cestou a existuje na to jiné řešení, aby při vetší návštěvnosti se uživatelům nepřiřazovala stejná čísla pro soubory?
20. 6. 2017 11:39:33
https://webtrh.cz/diskuse/php-mysql-ukladani-pojmenovani-souboru#reply1285932
Citanek22
verified
rating uzivatele
(2 hodnocení)
20. 6. 2017 11:55:39
Zdravím,
co třeba ?
function generuj_kod($delka_hesla) {
$skupina_znaku = 'abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890_!?.-';
$vystup = '';
$pocet_znaku = strlen($skupina_znaku)-1;
for ($i=0;$i<$delka_hesla;$i++) {
$vystup .= $skupina_znaku;
}
return $vystup;
}
$kod = generuj_kod(25);
20. 6. 2017 11:55:39
https://webtrh.cz/diskuse/php-mysql-ukladani-pojmenovani-souboru#reply1285931
tomve
verified
rating uzivatele
(22 hodnocení)
20. 6. 2017 12:17:39
např time() + uid -> if exist
20. 6. 2017 12:17:39
https://webtrh.cz/diskuse/php-mysql-ukladani-pojmenovani-souboru#reply1285930
Marek Urban
verified
rating uzivatele
(7 hodnocení)
20. 6. 2017 12:18:56
přídám před současný název aktuální date("Ymdhis")+id+puvodni nazev
20. 6. 2017 12:18:56
https://webtrh.cz/diskuse/php-mysql-ukladani-pojmenovani-souboru#reply1285929
mcever4
verified
rating uzivatele
20. 6. 2017 12:19:24
Citanek22: založeno na náhodě s malou pravděpodobností, určitě rychlejší :) ale máto příznivý efekt, napadlo mě pojmenovat soubor časovým razítkem
20. 6. 2017 12:19:24
https://webtrh.cz/diskuse/php-mysql-ukladani-pojmenovani-souboru#reply1285928
Holicz
verified
rating uzivatele
(5 hodnocení)
20. 6. 2017 12:20:29
Co třeba uuid v4? Implenetace v PHP je snadná najít.
20. 6. 2017 12:20:29
https://webtrh.cz/diskuse/php-mysql-ukladani-pojmenovani-souboru#reply1285927
Tom
verified
rating uzivatele
(7 hodnocení)
20. 6. 2017 12:24:17
A proč má mít jiný název než ID (když ti nezáleží na názvu)? Databáze ti udrží integritu (autoincrement) a hlavně budeš můžeš snadněji najít daný soubor.
Takže bych to viděl na:
1) upload na server
2) uložení do db
3) přenos z tempu do složky jako -id-.txt
20. 6. 2017 12:24:17
https://webtrh.cz/diskuse/php-mysql-ukladani-pojmenovani-souboru#reply1285926
mcever4
verified
rating uzivatele
20. 6. 2017 12:41:38
stačí id, ale to id musíš vygenerovat a přečíst a nejsem si co udělá INSERT a následný mysql_insert_id() ve větším počtu uživatelů
20. 6. 2017 12:41:38
https://webtrh.cz/diskuse/php-mysql-ukladani-pojmenovani-souboru#reply1285925
Martin
verified
rating uzivatele
(62 hodnocení)
20. 6. 2017 13:50:43
Já to dělám tak, že každému souboru vygeneruju vlastní UID (třeba nějaký náhodný hash z písmen a číslic) , podívám se jestli je v DB a pokud ne, zapíšu ho tam a uložím soubor pod tímto názvem.Pokud ti nezáleží na původním názvu, víc řešit nemusíš.
20. 6. 2017 13:50:43
https://webtrh.cz/diskuse/php-mysql-ukladani-pojmenovani-souboru#reply1285924
David Musil
verified
rating uzivatele
(69 hodnocení)
20. 6. 2017 14:15:38
Jak to resis, pokud se prijde, ze UID jiz existuje? Nejaka smycka?
20. 6. 2017 14:15:38
https://webtrh.cz/diskuse/php-mysql-ukladani-pojmenovani-souboru#reply1285923
Martin
verified
rating uzivatele
(62 hodnocení)
20. 6. 2017 15:05:29
Napsal musil.david;1393877
Jak to resis, pokud se prijde, ze UID jiz existuje? Nejaka smycka?
Prostě mám nekonečnou smyčku, která generuje UID, dokud není unikátní. Ale používám 20ti znakový hash, takže pochybuju, že to někdy proběhlo 2x :-)
20. 6. 2017 15:05:29
https://webtrh.cz/diskuse/php-mysql-ukladani-pojmenovani-souboru#reply1285922
Pro odpověď se přihlašte.
Přihlásit