Náhrada FTP klienta webovým rozhraním 2.

7. ledna 2003

V druhom diely seriálu o tvorbe FTP klienta si vytvoríme súbor pre prácu s adresármi. S tým sa nám zmení aj hlavná stránka „klient.php“. Už pri výpise aktuálneho adresára sa nám vedľa názvu adresára vyskytne možnosť adresár premenovať alebo vymazať. Okrem toho budeme môcť vytvárať nové adresáre.

Možnosť vymazať alebo premenovať adresár bude tiež pracovať na princípe jednoduchého formulára, ale so skrytími polami, ktoré budú uchovávať informácie ako názov operácie, meno adresára atď.

Najprv si upravíme hlavnú stránku klient.php pri výpise súborov a adresárov:

<table cellpadding="3" cellspacing="0" border="0">
<tr>
   <td width="36%"><b>Názov</b></td>
   <td width="14%"><b>Veľkosť</b></td>
   <td width="50%" colspan="2"><div align="right"><b>Dátum&nbsp;posl.&nbsp;modifikácie</b></div></td>
</tr>
<tr bgcolor="#005FA4">
   <td height="1"></td>
   <td></td><td colspan="2"></td>
</tr>
<?
if(Empty($adresar)):
  //mysql_connect("server","login","heslo");
  //$vysledok = mysql_db_query("databaza", "SELECT adresar FROM uzivatelia WHERE Login = ‚login‘ AND Heslo = "heslo’");
  //$adresar = mysql_result($vysledok, 0);
  $adresar = "server";
  endif;
  $handle = opendir($adresar);
  while($entry = readdir($handle)) {
   $cas = filemtime("$adresar/$entry");
   if(!ereg("^[.]+$", $entry)):
    if(is_file("$adresar/$entry")):
     echo "<tr><td><a href=\"$adresar/$entry\">$entry</a></td>
     <td><div align=\"center\">".filesize("$adresar/$entry")."</div></td>
     <td colspan=\"2\"><div align=\"right\">".Date("j. M. Y H:i:s", $cas)."</div></td></tr>";
    else:
     echo "<tr><td><b><a href=\"klient.php?adresar=$adresar/$entry\" target=\"_blank\">$entry</a></b></td>
     <td><div align=\"center\">-</div></td>
     <form action=\"edit_folders.php\" method=\"post\"><td>
     <div align=\"right\"><input type=\"hidden\" name=\"operacia\" value=\"delete\" />
     <input type=\"hidden\" name=\"adresar\" value=\"$adresar/$entry\" />
     <input type=\"hidden\" name=\"adr\" value=\"$adresar\" />
     <button type=\"submit\" class=\"button\">zmazať</button></td></form>
     <form action=\"edit_folders.php\" method=\"post\">
     <td><div align=\"left\"><input type=\"hidden\" name=\"operacia\" value=\"rename\" />
     <input type=\"hidden\" name=\"adresar\" value=\"$adresar/$entry\" />
     <input type=\"hidden\" name=\"adr\" value=\"$adresar\" />
     <button type=\"submit\" class=\"button\">premenovať</button></div></td></form></tr>";
    endif;
   endif;
  }
?>
</table>

V tejto časti bola z časti zmenená aj časť tabulky. Keďže nám FTP klient poskytuje možnosť adresár aj vymazať, aj premenovať, tak sme do jedného riadku v tabulke museli vložiť dva formuláre. To však niekedy tvorí problém hlavne s tým, že formuláre sa vedľa seba v jednom riadku nedajú len tak umiestniť. Riešenie je v našom prípade rozdelenie políčka na dve časti. Pri vypísaní súboru sa toto políčko zaplní celé a to sme dosiahli pridaním colspan="2". Príkazy vymazať alebo premenovať vyvoláte kliknutím na tlačidlo. Pod formulár pre editáciu súborov umiestnime formulár pre vytvorenie adresára:

<form action="edit_folders.php" method="post">
   <input type="hidden" name="operacia" value="create" />
   <input type="hidden" name="adr" value="<?=$adresar?>" />
   <input type="hidden" name="adresar" value="<?=$adresar?>" />
   <input type="text" name="folder" class="textinput" />&nbsp;
   <button type="submit" class="button">Vytvoriť adresár</button>
</form>

Teraz si tak, ako v predchádzajúcej časti, rozpíšeme nový súbor edit_folders.php:

<?
if($_POST[‚operacia‘]!="false" && $_POST[‚adresar‘]!="false" && $_POST[‚adr‘]!="false"):
  if($_POST[‚operacia‘]=="delete"):
   if(@RmDir($adresar)):
    echo "Adresár sa podarilo úspešne vymazať.";
   else:
    echo "Adresár sa nepodarilo vymazať. Adresár musí byť prázdny.";
   endif;

Pod podmienkou, že nám nechýbajú potrebné premenné, môžeme pokračovať. Pri operácií delete sa nám spracoval tento skript. Vymazávať sa dajú iba prázdne adresáre. Nasleduje časť skriptu pre premenovanie adresáru. Tu je nevyhnutné zadať nový názov adresára:

  elseif($_POST[‚operacia‘]=="rename"):?>
  <form action="edit_folders.php" method="post">
   <input type="hidden" name="operacia" value="premenuj" />
   <input type="hidden" name="adresar" value="<?=$adresar?>" />
   <input type="hidden" name="adr" value="<?=$adr?>" />
   <input type="text" name="meno" />&nbsp;
   <button type="submit" class="button">Premenuj</button>
  </form>

Do premennej $operacia sme vložili hodnotu "premenuj", formulár sa spracuje:

<?elseif($_POST[‚operacia‘]=="premenuj"):
  if(@Rename($adresar, "$adr/$meno")):
   echo "Adresár sa podarilo úspešne premenovať.";
  else:
   echo "Adresár sa nepodarilo premenovať.";
  endif;

Posledná časť skiptu nám vytvorí nový adresár a ukončí úplne prvú podmienku.

  elseif($_POST[‚operacia‘]=="create"):
   if(@MkDir("$adresar/$folder", 0755)):
    echo "Adresár sa podarilo úspešne vytvoriť.";
   else:
    echo "Adresár sa nepodarilo vytvoriť.";
   endif;
 endif; else:?>
    Nesprávne zadané údaje!
 <?endif;?>

Kaskádové štýly si môžete ľahko pomeniť podľa vášho vkusu. V nasledujúcom diely si vytvoríme formuláre pre zmenu prístupových práv pre súbory a adresáre a formulár pre upload súborov na server.

Archív súborov k tomuto článku klient.zip.

Starší komentáře ke článku

Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.

Předchozí článek Web - nové staré médium?
Další článek Grafy v ASP.NET
Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *