Takže jsem pro Vás připravil jeden uploudovací skript. Nahoře si ho můžete vyzkoušet. Protože nemám mnoho místa na disku, je hodnota velikosti souboru omezena na 500KB.
Nejprve to vytvoři kořenovou složku v tomto případě "upload". A dále to bude vytvářet složky podle přípon uploadovaných souborů. Takže pokud uložím nějakou mp3, bude to vypadat asi takto: upload/mp3/nějaká_písnička.mp3, pokud to bude video, tak to bude vypadat takto: upload/avi/film.avi. Poté to ještě vypíše soubory ze složky, do které jsme uploadovali soubor.
|
<? // formulář pro upload echo "<form action=\"http://vytvorweb.czweb.org/php/upload-souboru.html\" method=\"post\" enctype=\"multipart/form-data\">"; echo "<input type=\"file\" name=\"soubor\" />"; echo "<br />"; echo "<input type=\"submit\" value=\"Upload\" /> </form>"; // samotný skript // uložení proměnných z formuláře $soubor = ($_FILES["soubor"]["tmp_name"]); $soubor_name = ($_FILES["soubor"]["name"]); $soubor_size = ($_FILES["soubor"]["size"]/1024)/1024; // Je soubor menší než je maximální možná velikost? if($soubor_size > 5)//maximalni velikost souboru je 5MB echo "Soubor je větší než maxilmální možný soubor"; //pokud je menší :: už se soubor náhrál na server?? else if(is_uploaded_file($soubor)) { // samotný skript // zjistí příponu souboru a převede ji na malá písmenka $pripona = strtolower(pathinfo($soubor_name, PATHINFO_EXTENSION)); $ces = "upload"; $cesta = $ces."/"; //zde je cesta ke složce, do které budeme ukládat soubory if(!file_exists($ces)) //zjistí, jestli existuje adresař, jinak ho vytvoří { mkdir($ces, 0777 ); echo "vytvorena slozka"; } //zde je cesta ke složce, do které budeme ukládat soubory // Pokud už existuje složka se stejným názvem, tedy příponou uploadovaného soubrou, nic nevytvářej, jinak vytvoř adresář, kam uložime později uploadovaný soubor if(!file_exists($cesta.$pripona)) mkdir($cesta.$pripona, 0777 ); //přesune soubor na požadované místo, pokud ne, vyhodí chybu if (move_uploaded_file ($soubor, $cesta.$pripona."/".$soubor_name)) { echo "Soubor $soubor_name o velikosti "; printf('%1.2f',$soubor_size); echo "MB byl úspěšně nahrán na server"; } else{echo "Při nahrávání souboru došlo k chybě!";} //Výpis souborů v adresáře, kam byl přidán Váš soubor echo "Výpis souborů v adresáře, kam byl přidán Váš soubor <br />"; //otevře adresář $dir = opendir($cesta.$pripona."/"); //projde všechny soubory a vypíše je while($file = readdir($dir)) { echo "$file"."<br />"; } //zavře adresář closedir($dir); } ?> |
Pokud nemá složka nastavena správně práva, nepůjdou do ní ukládat soubory. Správné nastavení je 777. Toto můžete nastavit třeba v TotalCommanderu. Dále dejte pozor, například webzdarma má omezenou velikost souborů na 2MB, přes tuto hodnotu se na tomto serveru nedostanete.