Upload souborů na server
Napsal hary28 dne 29.07.2010 12:01 v Tvorba www stránek, PHP, MySQL | 2 komentářů
Po delší době zde máme další článek věnující se PHP. Jelikož hodně lidí se ptá: “Jak mohu vytvoři nahrávání soubrů na server?”, tak jsem se rozhodl o tom napsat článek. Není to vůbec nic složitého budou nám stačit pouze dva soubory. V prvním souboru budeme mít formulář pomocí kterého budeme vybírat z vašeho disku soubor který chce nahrát na server a ve druhém příspěvku si ukážeme script který soubor nahraje a přejmenuje tak jak chcete.
Vytvoříme si soubor index.php. V tmto souboru se bude formulář pro vybrání souboru z vašeho disku. Bude nám k tomu stačit pouze jedno pole s type=”file” a nazveme si ho také file. Teď už nám pouze schází tlačítko, které si už dokáže vytvořit každý sám.
Nýní máme vytvořený soubor index.php s formulářem a teď nás čeká vytvořit si soubor s názvem script.php ve kterém budeme mít script, který nám bude zpracovávat data odesíláné z formuláře. Prvně si do proměnné $nazev nastavíme název souboru po uploadu. Já sem si tam dal aktuální datum, aby nemohlo dojít ke dvoum stejným názvům na to si dávejte POZOR. Poté si funkcí is_uploaded_file(); ověříme zda vůbec nějaký soubor uploadujeme. Teď už provedeme upload pomocí funkce move_uploaded_file();. V této funkci jsme si nastavili $_FILES['file']['tmp_name'] a také cestu a název souboru.
<?php
$nazev = date("Y-m-d_H-i-s"); /* aktuální datum, který poté použijeme k přejmenování souboru, aby nemohlo dojít ke dvoum stejným názvům */
if (is_uploaded_file($_FILES['file']['tmp_name'])){
/* V následujících dvou řádcích si zjistíme jakou koncovku soubor má. */
$kon = explode('.',$_FILES['file']['name']);
$kon = $kon[count($kon)-1];
/* funkcí move_uploaded_file(); uploadnem a poté přejmenujeme soubor.
Název souboru jsme si definovali na začátku scriptu do proměnné $nazev.
K uploadu můžeme použít ještě funkci copy();, ale tuto funkci nedoporučuji používat.
soubory uploadujeme do složky files, kterou si sami vytvoříte.
Složka files musí mít nastavené atributy na 777 !!! */
move_uploaded_file($_FILES['file']['tmp_name'], "files/" . $nazev . "." . $kon);
echo "Soubor byl úspěšně nahrán na server.";
}else{
echo "Někde nastala chyba!";
}
?>
Kompletně hotový upload souborů zde ke stažení.
Komentáře (2)
hary28
18.08.2010, 22:05
Ve fillezille, když si připojenej na FTP účet tak stačí kliknout na složku a dát "File permissions" a tam zadat hodnotu 777 nebo v Total commanderu vybereš složku a klikneš na "Soubor" a tam "změna atributů".
Koudy
18.08.2010, 11:52
Zajímala by mě jediná věc... Co je myšleno tím nastavit atributy složky na 777... A už vůbec nevim jak to provést...