Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
Administratif
/
FTP
/
Code05
:
main.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <TITLE>WEB PHP FTP CLIENT</TITLE> </HEAD> <BODY> <? //------------------------------------------------------------------------------------// //konektni ftp server $conn_id = ftp_connect("$ftp_server"); //------------------------------------------------------------------------------------// //naloguj se pomoci uzivatelskeho jmena a hesla $login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass"); if ($ftp_user_dir) { $Directory = "$ftp_user_dir"; // Nastav adresar $EnterDirectory = 1; // Virtualne zmackni tlacitko Enter Directory, aby // se provedla funkce pro proch�zen� adres� } //------------------------------------------------------------------------------------// //zkus jesli jsem nalogovanej if ((!$conn_id) || (!$login_result)) { echo "Ftp connection has failed!<BR>"; echo "Attempted to connect to $ftp_server for user $ftp_user_name<BR>"; die; } else { echo "Connected to: <B>$ftp_server</B><BR> User: <B>$ftp_user_name</B><BR><BR>"; } //------------------------------------------------------------------------------------// $systype = ftp_systype($conn_id); //zjisti jaky se pripojuje server echo "<BR>systype = $systype"; //------------------------------------------------------------------------------------// //Upload souboru if ($upload) { //vytvor a sifruj soubor pro nasledny prenos z lokalniho disku na PHP server $HTTP_POST_FILES['userfile']['tmp_name']; //vyhod informace o upload souboru //zobraz informace o upload souboru print "<BR>"; print "userfile = $userfile"; print "<BR>"; print "userfile_name = $userfile_name"; print "<BR>"; print "userfile_type = $userfile_type"; print "<BR>"; print "userfile_size = $userfile_size"; print "<BR>"; print "tmp_name = $tmp_name"; print "<BR>"; $filename = $userfile_name; //nastav jmeno souboru $temp = $userfile; //nastav temp move_uploaded_file($filename, $temp); //presun soubor z disku do tempu na PHP serveru //nakopiruj soubor z PHP serveru na pripojeny FPT server $destination = "$OldDirectory[$DirStep]/$userfile_name"; //nacti, do ktereho adresare a pod jakym jmenem se ma soubor ulozit $upload_file = ftp_put($conn_id, $destination, $temp, FTP_BINARY); //kopiruj soubor z tempu PHP serveru na pripojeny FPT server //echo "<BR>presouvam soubor $destination"; //napis pokec, jestli se soubor presunul, nebo ne if (!$upload_file) { echo "<BR>Ftp upload nefunguje!"; } else { echo "<BR>Kopiruju soubor $temp na server $ftp_server jako soubor $destination"; } }//konec UPLOAD //------------------------------------------------------------------------------------// //Skok do predesleho adresare if (($UpDirectory)&&($DirStep != 0)) { $DirStep = $DirStep - 1; $Directory=$OldDirectory[$DirStep]; $dir = $Directory; echo "<BR>Path: <B>$dir</B>"; //Promenna $len bude potreba pri vypisu souboru do tabulky tak, //ze nactu celou cestu i se souborem a smazu prvni znaky $len, takze zustane jenom jmeno souboru. $len = strlen($dir); //kolik obsahuje �et�zec adres�e znak�? $len = $len + 1; //pricti jeden znak, coz je lomitko } //------------------------------------------------------------------------------------// // precti adresar if (($EnterDirectory)&&($Directory)) { echo "<BR>Directory = $Directory"; $slash = strchr($Directory,"/"); //testuj, jestli Directory obsahuje lom�tko if ($slash) //pokud ano, tak prochazej adresare timto zpusobem { //takhle funguje ftp.opengl.cz $DirStep = $DirStep + 1; //pricti pocet vnorenych adresaru $OldDirectory[$DirStep] = $Directory; //tomuto vnorenemu adresari prirad jmeno akrualniho adresare $dir = $Directory; //predej promenne $dir } else //jinak prochazej adresare timto zpusobem { //takhle funguje ftp.nixnet.cz $prev_dir_step = $DirStep; $DirStep = $DirStep + 1; //pricti pocet vnorenych adresaru $OldDirectory[$DirStep] = "$OldDirectory[$prev_dir_step]//$Directory"; //tomuto vnorenemu adresari prirad jmeno akrualniho adresare $dir = "$OldDirectory[$prev_dir_step]//$Directory"; //predej promenne $dir } echo "<BR>Path: <B>$dir</B>"; // vypis cestu k souboru //Promenna $len bude potreba pri vypisu souboru do tabulky tak, //ze nactu celou cestu i se souborem a smazu prvni znaky $len, takze zustane jenom jmeno souboru. $len = strlen($dir); //kolik obsahuje �et�zec adres�e znak�? $len = $len + 1; //pricti jeden znak, coz je lomitko } //------------------------------------------------------------------------------------// //Pokud se nevybere zadny adresar, tak zustan na stejne pozici adresaroveho stromu if (!$Directory) { echo "<BR>"; echo "Nevybrany zadny adresar"; echo "<BR>"; echo "DirStep = $DirStep"; $dir = $OldDirectory[$DirStep]; //ponechej puvodni adresar echo "<BR>"; echo "dir = $dir"; //Promenna $len bude potreba pri vypisu souboru do tabulky tak, //ze nactu celou cestu i se souborem a smazu prvni znaky $len, takze zustane jenom jmeno souboru. $len = strlen($dir); //kolik obsahuje �et�zec adres�e znak�? echo "<BR>"; echo "len = $len"; if ($len) { $len = $len + 1; } echo "<BR>"; echo "druhej len = $len"; } //------------------------------------------------------------------------------------// // Make Direstory if ($make_directory) //jestlize jsem klepnul na Make Directory { echo "<BR> Make Directory jede"; //ftp_mkdir ( resource ftp_stream, string directory) ftp_mkdir($conn_id, "//$dir//$value_make_directory//"); //vytvor adresar podle value_make_directory echo "<BR> Vytvarim adresar //$dir//$value_make_directory//"; } //------------------------------------------------------------------------------------// // Delete Direstory if ($delete_directory) //jestlize jsem klepnul na Delete Directory { echo "<BR> Delete Directory jede"; echo "<BR>Directory = $Directory"; if($Directory) { $slash = strchr($Directory,"/"); //testuj, jestli Directory obsahuje lom�tko if ($slash) { //tohle jede na opengl $dir = $OldDirectory[$DirStep]; //ponechej puvodni adresar //Promenna $len bude potreba pri vypisu souboru do tabulky tak, //ze nactu celou cestu i se souborem a smazu prvni znaky $len, takze zustane jenom jmeno souboru. $len = strlen($dir); //kolik obsahuje �et�zec adres�e znak�? echo "<BR>"; echo "len = $len"; if ($len) { $len = $len + 1; } ftp_rmdir ($conn_id, $Directory); echo "<BR> Mazu adresar $Directory"; } else { //tohle jede na nixnetu $dir = $OldDirectory[$DirStep]; echo "<BR>dir = $dir"; ftp_rmdir ($conn_id, "//$dir//$Directory//"); echo "<BR> Mazu adresar //$dir//$Directory//"; $Directory = ""; } } } //------------------------------------------------------------------------------------// //Download file if ($download_file) { echo "<BR> Download jede"; echo "<BR> File = $File"; $destination_file = "temp/$File.zip"; $source_file = "//$dir//$File"; ftp_get($conn_id, $destination_file, $source_file, FTP_BINARY); //kopiruj soubor z pripojeneho serveru na muj server header("Location: $destination_file"); } //------------------------------------------------------------------------------------// // Delete File if ($delete_file) //jestlize jsem klepnul na Delete File { echo "<BR> Delete File jede"; $slash = strchr($File,"/"); //testuj, jestli File obsahuje lom�tko if($File) { if ($slash) { ftp_delete ($conn_id, $File); echo "<BR> Mazu soubor $File"; } else { ftp_delete ($conn_id, "//$dir//$File"); echo "<BR> Mazu soubor $File"; } } } //------------------------------------------------------------------------------------// //Nacti soubory v adresari dir $file_list=Array(); $file_list=ftp_nlist($conn_id, "$dir"); //Se�ad podle abecedy file_list sort($file_list); //------------------------------------------------------------------------------------// //Vykresli tabulky echo "<TABLE BORDER=1 CELLPADDING=4 width=600>"; /////vykresli Form 1 ///// echo "<FORM enctype=\"multipart/form-data\" ACTION = \"main.php\" METHOD=POST>"; //------------------------------------------------------------------------------------// //Zobraz adresare echo "<TR><TD width=30%><B>Directories</B><BR>"; //prvni radka a bunka tabulky echo "<SELECT TYPE=TEXT NAME=Directory SIZE=10>"; //detekce, ktery adresar je oznaceny ,vyhodi promennou $Directory $i=0; //cyklus nastav na 0 do //cykluj { $slash = strchr($file_list[$i],"/"); //testuj, jestli file list obsahuje lom�tko if ($slash) //jestli�e file list obsahuje lom�tko tak { $clear_dir = substr($file_list[$i], $len, 20 ); //vymaz cestu k souborum, nech jenom nazvy adresaru a souboru } else //jinak { //nacti celou cestu i se souborem a smaz prvni znaky $len, aby zustalo jenom jmeno souboru. $clear_dir = $file_list[$i]; //bude clear_dir rovno file listu } //$file_size = ftp_size($conn_id, $file_list[$i]); //nacti velikost souboru //$file_size = ftp_size($conn_id, $clear_dir); //nacti velikost souboru $dot = strchr($file_list[$i],"."); //testuj, jestli file list obsahuje tecku //if (($file_size == -1) and ($file_list[$i] != "")) //pokud je velikost souboru nulova, tak je to adresar if (!$dot) //jestlize string obsahuje tecku, tak je to soubor { echo "<option value=$file_list[$i]> $clear_dir </option>"; //tak ho muzus vypsat do prvniho formulare } $i++; //pricti cyklus }while($file_list[$i]); //dokud se neprojedou vsechny soubory a adresare echo "</select>"; //konec detekce, ktery adresar je oznaceny //------------------------------------------------------------------------------------// //Zobraz soubory echo "<TD><B>Files</B><BR>"; //prvni radka, druha bunka tabulky echo "<SELECT TYPE=TEXT NAME=File SIZE=10>"; //detekce, ktery soubor je oznaceny ,vyhodi promennou $File $i=0; //cyklus nastav na 0 do //cykluj { $slash = strchr($file_list[$i],"/"); //testuj, jestli file list obsahuje lom�tko if ($slash) //jestli�e file list obsahuje lomitko tak { $clear_dir = substr($file_list[$i], $len, 20 ); //vymaz cestu k souborum, nech jenom nazvy adresaru a souboru $file_size = ftp_size($conn_id, $file_list[$i]); //nacti velikost souboru } else //jinak { //nacti celou cestu i se souborem a smaz prvni znaky $len, aby zustalo jenom jmeno souboru. $clear_dir = $file_list[$i]; //bude clear_dir rovno file listu $file_size = ftp_size($conn_id, "//$dir//$file_list[$i]"); //nacti velikost souboru } $dot = strchr($file_list[$i],"."); //testuj, jestli file list obsahuje tecku if ($dot) //jestlize string obsahuje tecku, tak je to soubor { echo "<option value=$file_list[$i]> $clear_dir ($file_size bytes) </option>"; //tak ho muzus vypsat do druheho formulare } $i++; //pricti cyklus }while($file_list[$i]); //dokud se neprojedou vsechny soubory a adresare echo "</select>"; //konec detekce, ktery soubor je oznaceny //------------------------------------------------------------------------------------// //Posli formularove informace echo "<TR><TD>"; //dryhy radek, prvni bunka tabulky echo "<INPUT TYPE=hidden NAME=ftp_server VALUE=$ftp_server>"; //jmeno FTP serveru echo "<INPUT TYPE=hidden NAME=ftp_user_name VALUE=$ftp_user_name>"; //uzivatelske jmeno echo "<INPUT TYPE=hidden NAME=ftp_user_pass VALUE=$ftp_user_pass>"; //uzivatelske heslo echo "<INPUT TYPE=hidden NAME=DirStep VALUE=$DirStep>"; //identifikacni cislo vnoreneho adresare, ve kterem se nachazim $slash = strchr($dir,"/"); //testuj, jestli file list obsahuje lom�tko if (!$slash) { echo "<INPUT TYPE=hidden NAME=dir VALUE=$dir>"; //posli nazev adresare } //posli informace o poctu vnorenych adresaru $i=0; //cyklus nastav na 0 do //cykluj { echo "<INPUT TYPE=hidden NAME=OldDirectory[$i] VALUE=$OldDirectory[$i]>"; $i++; //pricti cyklus }while($i <= $DirStep); //dokud i se nebude rovnat 20, vic vnorenych adresaru snad nikdo nebude mit //while($i <= 20); //dokud i se nebude rovnat 20, vic vnorenych adresaru snad nikdo nebude mit //------------------------------------------------------------------------------------// //Vykresli buttony pro praci s adresarema echo "<INPUT TYPE=SUBMIT NAME=\"EnterDirectory\" VALUE=\"Enter Directory\"><BR>"; //Button Enter Directory echo "<INPUT TYPE=SUBMIT NAME=\"UpDirectory\" VALUE=\"Go up one Directory\">"; //Button Go up one Directory echo "<BR>"; echo "<HR>"; //odradkuj echo "<INPUT TYPE=TEXT NAME=\"value_make_directory\" VALUE=\"New Directory\">"; //Button Make Directory echo "<INPUT TYPE=SUBMIT NAME=\"make_directory\" VALUE=\"Make Directory\">"; //Button Make Directory echo "<BR><HR><BR><HR>"; //odradkuj echo "<INPUT TYPE=SUBMIT NAME=\"delete_directory\" VALUE=\"Delete Directory\">"; //Button Delete Directory //------------------------------------------------------------------------------------// //Vykresli buttony pro praci se souborama echo "<TD>"; //druha radka, druha bunka tabulky //buttony pro Upload File echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"100000000\">"; //posli informaci o maximalni velikosti uploadovaneho souboru echo "<input name=\"userfile\" type=\"file\">"; //button browse - prochazeni echo "<input type=\"submit\" name=\"upload\" value=\"Upload File\">"; //button upload //echo "<BR><HR>"; //odradkuj // Vykresli button Download File //echo "<input type=\"submit\" name=\"download_file\" value=\"Download File\">"; echo "<BR><HR><BR><HR>"; //odradkuj //Vykresli button Delete File echo "<input type=\"submit\" name=\"delete_file\" value=\"Delete File\">"; echo "</FORM>"; //konec Form1 echo "</TABLE>"; //konec tabulky echo "<BR>"; echo "<BR>"; //odradkuj //------------------------------------------------------------------------------------// //Vykresli button Logout //Form 3 pro Logout, vraci se zpet na index.php echo "<FORM enctype=\"multipart/form-data\" ACTION = \"index.php\" METHOD=POST>"; //button Logout echo "<BR>"; echo "<BR>"; //odradkuj echo "<input type=\"submit\" name=\"logout\" value=\"Logout\">"; //echo "<INPUT TYPE=hidden NAME=conn_id VALUE=$conn_id>"; //uzivatelske cislo echo "<INPUT TYPE=hidden NAME=ftp_server VALUE=$ftp_server>"; //jmeno FTP serveru echo "<INPUT TYPE=hidden NAME=ftp_user_name VALUE=$ftp_user_name>"; //uzivatelske jmeno echo "<INPUT TYPE=hidden NAME=ftp_user_pass VALUE=$ftp_user_pass>"; //uzivatelske heslo echo "</FORM>"; //konec FORM 3 pro Logout// //------------------------------------------------------------------------------------// ?> </BODY> </HTML>