Autor Zpráva
Pavel Vodnář
Profil *
Dobrý den, peru se s tímto kódem, ale pořád mi to nevypisuje počet souboru ve složce, nevíte včem by mohl být problém? Děkuji Vám

$directory = "./images/";
if (glob("$directory*.jpg") != false)
{
 $filecount = count(glob("$directory*.jpg"));
 echo $filecount;
}
else
{
 echo 0;
echo $directory;
}


Lamicz
Profil
Tak se s tím perte dál. Když odpovím, tak budou následovat další 3 témata... Už teď zde máte průměrně jedno téma denně. Programování není o tom, že něco někde najdu nebo napíšu a předhodím to na fórum. Snažte se sám. Pokud Vám to dělá problémy, zaplaťte si nějaký kurz nebo si kupte knížku. Já sám se třeba nad nějakým problémem "zaseknu" i na několik hodin a musím se s tím poprat, tím se taky člověk učí. Omlouvám se zde přítomným a moderátorům, ale musel jsem...
Alphard_
Profil *
Pavel Vodnář:
Šlo by to napsat lépe, ale je to funkční. Zkontrolujte cestu a kdyžtak si vypište pole, které vrátí glob(), byl by do dobrý debug krok.

Lamicz:
Souhlasím, sám jsem to kolegovi Vodnáři několikrát doporučoval, ale na druhou stranu oceňuji, že sestavil/našel něco, co by mělo fungovat :-)
Pavel Vodnář
Profil *
Máte pravdu - jste zkušení, ja se učím pomalinku - je to hodně informací naráz ale i tak se vážím vaší spolupráce!
Pavel Vodnář
Profil *
Když zadám vypsání
echo glob("$directory*.jpg"); 
vypíše mi to: Array1 - proč to výpíše pole? Děkuji
panther
Profil
Pavel Vodnář:
vypíše mi to: Array1 - proč to výpíše pole?
kdyby ses koukl do Manuálu (klikem na název funkce ve tvém příspěvku), věděl bys, že „Returns an array containing the matched files/directories, an empty array if no file matched or FALSE on error.
Pavel Vodnář
Profil *
panther:
Máte pravdu - už to běží - děkuji Vám
Euroblb
Profil
Čtu a poprvé vidím.
"$directory*.jpg"

Ta hvězdička tam představuje?
Jenom pro informaci.
Pavel Vodnář
Profil *
Dal sem tedy tento kód dokupy ale pořád se mi to neukláda dle mých představ typu $nazev ="img".$newname. ".jpg"; Nevíte čím to může být? PS snažím se.... Když si vypíšu $nazev tak mi to vypíše počet jpg souboru + 1 jak má, ale neukládá to soubor pod tímto názvem, jak to prosím poupravit? Děkuji

  if (isset($_FILES["fupload"]["name"]))  

{ 

  if ((is_uploaded_file($_FILES["fupload"]["tmp_name"])) && ( $_FILES['fupload']['type']=="image/jpeg" ))
               { 
               $name = $_FILES["fupload"]["name"]; 


$directory = "./images/";
//echo ("$directory*.jpg");
if (glob("$directory*.jpg") != false)

{
 $filecount = count(glob("$directory*.jpg"));
 echo $filecount;
$newname=$filecount+1;

//echo $newname;
}
else
{
 echo 0;
echo $directory;
}


$nazev ="img".$newname. ".jpg";
echo $nazev;


               if (@move_uploaded_file($_FILES["fupload"]["tmp_name"], "./images/$nazev"))  
	{
                 echo 'Soubor '.$nazev.' byl úspěšně nahrán';

	}
       else {echo 'Nastala chyba'; }
               }  
		else {echo "Obrázek musí být typu .jpg, .jpeg";
		echo $_FILES['fupload']['type'];
		echo $_FILES["fupload"]["name"]; 
             
	}

}
Alphard_
Profil *
Předpokládejme, že název je v pořádku, co třeba zrušit zákaz výpisu chyb?
Pavel Vodnář
Profil *
Aha, a proč rušit zákaz výpisu chyb - když to chyby nevipisuje? Mohla by být chyba i v něčém jiném (kromě chyby mého zlého programování ;p) ? Děkuji
Alphard_
Profil *
Pavel Vodnář:
když to chyby nevipisuje?
My nemůžeme vědět, že je to nevypisuje.

Mohla by být chyba i v něčém jiném
Zřejmě ano, na první pohled mi nic do oka nepadlo. Jestli jedete na Linuxu, může být problém s právy.
Pavel Vodnář
Profil *
Aha, ne nepracuji na linuxu - a je ten postup vytvoření nového jména pro uploadovaný obrázek správný?
Alphard
Profil
Pavel Vodnář:
a je ten postup vytvoření nového jména pro uploadovaný obrázek správný?
Je tady určité riziko, že se při paralelní přístupu něco přepíše, ale tohle se ošetřuje blbě.
Když už vytvoříte proměnnou $directory, používejte ji všude.
Kdybyste kód správně odsazoval, byl by mnohem přehlednější.

Osobně bych to nacpal na jeden řádek
$name = 'img_'.(count(glob($directory.'*.jpg'))+1).'.jpg';

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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