FTP klient v PHP snadno a rychle
Chcete do svého projektu integrovat FTP klienta a nevíte, jak na to? V tomto článku vám přiblížím již vytvořenou komponentu, kterou lze upravovat podle vlastních požadavků.
Jistě to znáte sami – termín dodání projektu se blíží a vám se nechce programovat funkce, které už někdo udělal. Řešením je využití knihoven hotových skriptů jako např. HotScripts.com či php.ResourceIndex.com. Na těchto stránkách najdete více či méně podařené komponenty, které můžete vcelku snadno integrovat do svých programů.
V jedné z takových knihoven najdete i PHP FTP klienta, jehož autorem je Paul Southworth. Tento klient nabízí vedle možnosti uploadu a downloadu souborů i tvorbu adresářů na vzdáleném serveru – tedy skoro vše, co od jednoduchého klienta můžete chtít. Chyběla mi ale možnost mazání souborů a adresářů na vzdáleném serveru. Pustil jsem se tedy do úprav.
Nejprve si otevřete zdrojový text komponenty, který jsem z prostorových důvodů do článku nevložil. Po spuštění si program ověří, jakou hodnotu má proměnná $function – dle toho zavolá příslušnou funkci (její název začíná vždy řetezcem phpftp). Pokud je hodnota proměnné $function rovna prázdnému řetezci (počáteční stav), je zavolána funkce phpftp_login. Dojde tak k zobrazení formuláře pro doplnění údajů nutných pro připojení k serveru – tj. jména a hesla (adresa FTP serveru je napevno dána hodnotou proměnné $phpftp_host). Odesláním tohoto formuláře dojde k aktivaci funkce phpftp_list, která již zobrazí vlastního klienta. Dodejme, že všechny funkce si předávají hodnoty nutné pro připojení (jméno a heslo) jako parametr – z tohoto důvodu je u všech formulářů pro zasílání dat použita metoda POST (parametry se nezobrazí v řádku s adresou stránky). Není to sice nejlepší řešení (např. heslo lze snadno vyčíst ze zdrojového kódu stránky), avšak potenciální uživatel tyto hodnoty stejně znát musí a před připojením se k nim nikdo jiný dostat nemůže.
Jak už jsem zmínil v úvodu, funkce nabízené klientem mi nestačily. Jako první jsem přidal funkci pro smazání souboru: phpftp_del. Do funkce phpftp_list jsem doplnil další formulář zobrazující seznam souborů v aktuálním adresáři identický s tím, který je určen pro výběr souborů pro download (funkce phpftp_get). Změna spočívala pouze ve volání funkce phpftp_del. Vstupními parametry této funkce jsou vedle již zmiňovaných údajů nutných pro připojení (jméno a heslo uživatele) ještě řetězce s cestou k aktuálnímu adresáři a s názvem zvoleného souboru. Po připojení k FTP serveru se pomocí funkce ftp_chdir přesuňte do aktuálního adresáře a voláním funkce ftp_delete vybraný soubor smažte. Poté se odpojte od FTP serveru a zavolejte funkci phpftp_list, která slouží k vlastnímu zobrazení FTP klienta – tím zajistíte žádanou aktulizaci zobrazení stavu souborů na serveru.
|
Ve zdrojovém kódu jste si určitě všimli dvou funkcí, o kterých jsem se vůbec nezmiňoval – phpftp_top() a phpftp_bottom(). Jejich obsahem je záhlaví a zápatí stránky, v níž bude klient umístěn. Díky tomu lze snadno komponentu integrovat do aplikace.
Vedle možnosti smazání souboru mi chyběla ještě jedna funkce – smazání adresáře. Potřebný úsek kódu jsem doplnil do funkce phpftp_cd, která slouží pro přesun mezi adresáři. Využil jsem již naprogramovaný formulář, do kterého jsem doplnil tlačítko určené pro smazání adesáře. Formulář tak zůstane neměnný. Pouze při stisknutí doplněného tlačítka se navíc odešle řetezec $rmdir, který poté ve funkci poslouží pro indikaci žádosti o smazání adresáře. Pro zvýšení bezpečnosti jsem tuto funkci navíc doplnil o podmínku, která zajistí smazání adresáře pouze v případě zcela prázdného adresáře.
|
A to je vše. Vytvořený FTP klient splňuje všechny požadavky na něj kladené a modifikovaný kód je navíc možné snadno integrovat v podstatě do jakékoli aplikace. Konkrétně v případě mého redakčním systému jsem program doplnil o funkce pro kontrolu přístupu: klienta lze volat pouze v případě, že daný uživatel je přihlášen (blíže článek Autorizace uživatelů v PHP) a má k zobrazení klienta práva (kontrola záznamu v příslušné tabulce s právy uživatelů).
Původní zdrojový kód aplikace si můžete stáhnout zde, na Intervalu pak najdete popisovanou modifikaci v angličtině a v češtině.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Jak zabezpečit váš chytrý telefon před kybernetickými hrozbami
30. listopadu 2023
Nejnovější
-
Výkonný a kompaktní: ASOME Max Studio s výjimečným poměrem cena/výkon
11. listopadu 2024 -
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024