Autor Zpráva
Bartolomey
Profil
S PHP začínám, stáhnul jsem si a upravil script na upload souborů, ale potřeboval bych to omezit jen na soubory s příponou jpg, gif, png, bmp, zip a rar. Mohl by mi to prosím někdo aplikovat do souboru http://futuramania.cz/upload/upload.txt ?
Díky moc
Zool
Profil *
No tak typ souboru je v poli $FILES['nazev']['type'] , ale nejhorší je že se ten typ odvíji od prohlížeče
pak to můžeš ochránit podmínkou
if($_FILES['nazev']['type'] == "application/csv" || "application/vnd.ms-excel" == $_FILES['nazev']['type'])
to je ochrana pro nahrání souboru s koncovkou csv jak moziille tak v exploreru
Acci
Profil
Zool
Jenže jak říkáš, tento údaj posílá prohlížeč a proto se na něj nedá spolehnout (kdokoliv ho může podvrhnout). Proto je dobré jej kombinovat ještě zjišťováním přípony:
$povolene_pripony = array('jpg', 'jpeg', 'gif', 'png');
$pripona = pathinfo($nazev_souboru, PATHINFO_EXTENSION);
if(!in_array($pripona, $povolene_pripony))
  echo 'Chyba: Nesprávná přípona';
Bartolomey
Profil
Zkusil jsem ted způsob od Zool, uploadoval jsem csv soubor, ale v pořádku se to uploadovalo bez jakékoliv chybové hlášky. Zkusil jsem i způsob od Acci, ten sice vyhodil hlášku o nespávné příponě, ale soubor se i přesto uploadoval... Nevím ale, jestli jsem je aplikoval správně. Mohl by to, prosím někdo odzkoušet?
bukaj
Profil
Bartolomey
... Nevím ale, jestli jsem je aplikoval správně.
Podle všeho se zdá, že jsi použil metodu Copy&Paste a vůbec jsi nepřemýšlel nad tím, co děláš. Prostě jsi jenom vzal kód a přidal ho do svého skriptu, viď? Zkus použít mozek a zamyslet se nad tím, co ti vlastně Zool a Acci poslali a jak to správně použít ve svém dosavadním kódu.
Bartolomey
Profil
bukaj
já na toho asi moc nepříjdu.. :) v php umím maximálně používat proměnné, regulární výrazy, prostě trochu ze základů.. :)
bukaj
Profil
Bartolomey
v php umím maximálně používat proměnné, regulární výrazy, prostě trochu ze základů
Nelze říct nic jiného než: Tak se uč, zkoušej. Podívej se do FAQu - Kde hledat víc informací.

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:

0