Autor Zpráva
candiess
Profil
Mam takový fajny kod na upload souboru, jenže co když ten soubor již existuje? Já nechci aby mi ho ten nový přepsal, tak jestli mi můžete poradit jak na ten cyklus, díky :))

Příklad:
mam složku a v ní:
neco.txt
neco1.txt
neco2.txt

a nahrávám neco.txt, jak udělat aby se tam doplnila trojka na konec souboru? :)
l564
Profil
candiess:
Já mám vlastní taky nahrávač, a mám udělaný to že, neco-$datum.typ a jako $datum mám
$datum			= StrFTime("%d%m%Y%H%M%S", Time());

to znamená že soubor nikdy nebude shodný (funkce $datum = Datum Měsíc Rok Hodina Minuty Sekundy)

Myslím že by bylo dobré aby jsi vzal název souboru, typ oddělil a pomocí funkce rename přejmenoval na název a třeba za pomlčku vložil 3 a ke konci přidal typ, tak že asi $nazev-3.$typ.
Tori
Profil
candiess:
Koukněte na funkci glob.
Jinak kdybyste ukládal info o těch souborech do databáze, tak by to šlo zjistit dotazem. (asi něco jako
SELECT COUNT(*) FROM soubory WHERE filename LIKE 'neco%'
Michal Benda
Profil
$fileName = "neco.txt";
$parts = explode(".", $fileName);

$newFileName = $fileName;
$num = 1;

$fileName = $parts[0];
$suffix = $parts[1];

while(file_exists($newFileName)){
  $newFileName = $fileName.$num.".".$suffix;
  $num++;
}


Napřed je potřeba rozdělit neco.txt na jméno souboru a na jeho příponu a je možné přidávat na konec jména souboru potřebné číslo... Kontroluje, zda soubor neco.txt existuje, pokud ano, kontroluje, zda existuje soubor neco1.txt, atd. atd. Potom musíš pracovat už jenom s proměnnou newFileName. Dalo by se to samozřejmě izolovat do nějaké funkce, ale to by neměl být problém.

Nemám to teďka ozkoušené, ale myslím, že by to mělo fungovat...

EDIT: Jo a možná si to měl dát do sekce PHP...
vynalezce
Profil
l564:
A PHP (ASP, whatever) injection neřešíš, co.... ( $typ=={libovolná přípona, u které je povolen serverside scripting} )
candiess
Profil
Hoši, to je všechno moc hezké ale otázku rozdělení přípony a datbázi už mám vyřešenou :)
A nakonec jsem to přec jen udělal, že každý soubor má svoje unikátní jméno :) a díky moc všem

Prosím o uzavření téma, díky
Tori
Profil
candiess:
A nakonec jsem to přec jen udělal, že každý soubor má svoje unikátní jméno
Jestli to bylo nějaké jiné řešení, než ta, která jsme navrhovali, mohl byste ho sem kdyžtak napsat? Kdyby někdo další hledal řešení stejného problému tak ať má víc možností. Díky :)
candiess
Profil
Jistěže :))
$soubor = "neco.txt";
$pripona = substr(strrchr($soubor, '.'), 1); //tim dostaneme ,,txt"
$novy = Date("Y-m-d-H-i-s"); // ,,2011-09-06-21-30-05"

if(file_exists($soubor) {
$soubor = $novy;
}


Je to jen takový ustřižek, cely kod by trvah hodiny než bych ho tu popsal, snad to bude někomu užitečné :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0