Nacházíte se: tvorba webu :: php :: upload-souboru



Upload souboru




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.

Jak to funguje:

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.

Skript Upload souboru

<?
// 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);
}
?>


Upozornění:

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.

Skript:

Skript
úvod | tvorba webu | ostatní | služby | návštěvní kniha | kontakt