Super (diretório) - desafio pra quem realmente gosta de programa
Gente é o seguinte, consegui um código bem interessante na net, to reeditando aos poucos, pois o mesmo encontra-se em Estoniano (ETA!!). É um código sobre listagem de diretórios, podendo abrir subpastas e listar seus arquivos, fazer upload e agora to tentando colocar a função excluir (essa é a ajuda), sendo que já está configurado com permissão 0777. É um super script, gostaria da ajuda de todos, com certeza via servir pra todo mundo.
<?php$kataloog = ".";$ava_uues_aknas = 0;$max_space = 25600;$dir_levels = 1;$kuva_index = 0; $charset = "UTF-8"; /* padrão unicode */$icons = array("asp", "avi", "bmp", "chm", "css", "doc", "exe", "gif", "gz", "htm", "html", "jpg", "jpeg", "js", "jsp", "mov", "mp3", "mpeg", "mpg", "pdf", "php", "png", "ppt", "rar", "sql", "txt", "wav", "wmv", "xls", "xml", "xsl", "zip", "psd");$varjatud_kaustad = array("icons");$excecoes = array(".ftpquota", "index.php", "error_log");$parool = "";$aadress_serveris = "";$lang_pt = array("file_name" => "Nome do arquivo","size" => "Tamanho","delete" => "Ação","last_changed" => "Enviado","total_used_space" => "Espaço usado","free_space" => "Espaço livre","password" => "Senha","upload" => "Upload","failed_upload" => "Erro ao enviar o arquivo!","failed_move" => "Erro ao copiar o arquivo para este diretório!","wrong_password" => "Senha inválida");$lang = $lang_pt; /* escolhe o tipo de idioma */function css(){?><style type="text/css">BODY {background-color:#FFFFFF;}A {color: #000000;text-decoration: none;}A:hover {text-decoration: underline;}#raam {width:680px;padding:3px;border: 1px dotted #CDD2D6;text-align:left;position: relative;margin: 0 auto;}#infoala {color:#000000;font-family:Verdana;font-size:10px;width:680px;position: relative;margin: 0 auto;text-align:center;}#upload {color:#000000;font-family:Verdana;font-size:10px;width:680px;position: relative;margin: 0 auto;text-align:center;}#veateade{width:300px;background-color:#FFE4E1;font-family:Verdana;font-size:10px;color:#000000;padding:7px;position: relative;margin: 10px auto;text-align:center;border: 1px dotted #CDD2D6;}input{font-family:Verdana;font-size:10px;border: 1px solid #CDD2D6;}.tabel {width: 680px; font-family: Verdana; font-size: 11px;}.rida_yks {background-color:#fcfdfe;}.rida_kaks {background-color:#f8f9fa;}</style><?php}function Failisuurus($suurus) {$suurused = Array('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB');$yh = $suurused[0];for ($i=1; (($i < count($suurused)) && ($suurus >= 1024)); $i++) {$suurus = $suurus / 1024;$yh = $suurused[$i];}return round($suurus, 2)." ".$yh;}function Faililaiend($fail){$a = explode(".", $fail);$b = count($a);return $a[$b-1];}function Failimuut($aeg){return date ("d.m.y H:i:s", $aeg);}function Failiikoon($l){$l = strtolower($l);global $icons;if(in_array($l, $icons)){return "icons/".$l.".gif";}elsereturn "icons/tundmatu.gif";}function Teenool($sort_by, $sort_as, $type, $dir){if($sort_by == $type && $sort_as == "desc"){return "<a href=\"?dir=".$dir."&sort_by=".$type."&sort_as=asc\"><img style=\"border:0;\" alt=\"asc\" src=\"icons/nool_y.gif\" /></a>";}elsereturn "<a href=\"?dir=".$dir."&sort_by=".$type."&sort_as=desc\"><img style=\"border:0;\" alt=\"desc\" src=\"icons/nool_a.gif\" /></a>";}function nimi_cmp_desc($a, $b){ return strcmp($a["nimi"], $b["nimi"]);}function suurus_cmp_desc($a, $b){return ($a["suurus"] - $b["suurus"]);}function suurus_cmp_asc($b, $a){return ($a["suurus"] - $b["suurus"]);}function muut_cmp_desc($a, $b){return ($a["muudetud"] - $b["muudetud"]);}function muut_cmp_asc($b, $a){return ($a["muudetud"] - $b["muudetud"]);}function nimi_cmp_asc($b, $a){return strcmp($a["nimi"], $b["nimi"]);}function sum_dir($start_dir, $ignore_files, $levels = 1) {if ($dir = opendir($start_dir)) {while ((($file = readdir($dir)) !== false)) {if (!in_array($file, $ignore_files)) {if ((is_dir($start_dir . '/' . $file)) && ($levels - 1 >= 0)) {$levels -= 1;$filesize += sum_dir($start_dir . '/' . $file, $ignore_files, $levels);} elseif (is_file($start_dir . '/' . $file)) {$filesize += filesize($start_dir . '/' . $file) / 1024;}}}closedir($dir);return $filesize;}}function ylemine_kataloog($dir){$tykid = explode("/", $dir);$arv = count($tykid);$tykid2 = array();for($i = 0; $i < $arv - 1; $i++){$tykid2[$i] = $tykid[$i];}$dir2 = implode("/", $tykid2);return $dir2;}if(!$_GET["dir"]) $dir = $kataloog;else{if(ereg("\.\.(.*)", $_GET["dir"]) || $_GET["dir"][0] == '/'){$dir = $kataloog;$ylemine_dir = "";}else{$dir = $_GET["dir"];$ylemine_dir = ylemine_kataloog($dir);}}$veateade = NULL;if($_FILES['userfile']['name']){if($parool && $_POST['parool'] == $parool){$nimi = basename($_FILES['userfile']['name']);if(get_magic_quotes_gpc())$nimi = stripslashes($nimi);$uploaddir = ($aadress_serveris?$aadress_serveris:dirname($_SERVER['SCRIPT_FILENAME']))."/".$dir."/";$uploadfile = $uploaddir . $nimi;if(!is_uploaded_file($_FILES['userfile']['tmp_name'])){$veateade = $lang["failed_upload"];}if(!@move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)){$veateade = $lang["failed_move"];}elsechmod($uploadfile, 0777);}else$veateade = $lang["wrong_password"];}//// Loeme failide ja kaustade andmed//if($avakaust = @opendir($dir)){$i = 0;while ($asi = readdir($avakaust)) {if($asi != "." && $asi != "..") {if(is_dir($dir."/".$asi)){if(!in_array($asi, $varjatud_kaustad))$kaustad[] = htmlspecialchars($asi);}else if(!in_array($asi, $excecoes)){$failid[$i]["nimi"] = htmlspecialchars($asi);$asi = $dir."/".$asi;$failid[$i]["laiend"] = Faililaiend($asi);$failid[$i]["suurus"] = filesize($asi);$failid[$i]["muudetud"] = filemtime($asi);$i++;}}}closedir($avakaust);//// Sorteerime failid ja kaustad. Vaikimisi sorteeritakse nime järgi.//if($failid || $kaustad){if($_GET["sort_by"] == "nimi" && $_GET["sort_as"] != "asc"){@sort($kaustad);@usort($failid, "nimi_cmp_desc");}elseif($_GET["sort_by"] == "nimi" && $_GET["sort_as"] == "asc"){@rsort($kaustad);@usort($failid, "nimi_cmp_asc");}elseif($_GET["sort_by"] == "suurus" && $_GET["sort_as"] != "asc" && $failid){usort($failid, "suurus_cmp_desc");}elseif($_GET["sort_by"] == "suurus" && $_GET["sort_as"] == "asc" && $failid){usort($failid, "suurus_cmp_asc");}elseif($_GET["sort_by"] == "muudetud" && $_GET["sort_as"] != "asc" && $failid){usort($failid, "muut_cmp_desc");}elseif($_GET["sort_by"] == "muudetud" && $_GET["sort_as"] == "asc" && $failid){usort($failid, "muut_cmp_asc");}else{@sort($kaustad);@usort($failid, "nimi_cmp_desc");}}//// Algab lehe HTML//?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "[http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">http-equiv="content-type" /><title>Explorer</title></head><body><?php /* mostra as mensagens de alerta */if($veateade){?><div id="veateade"><?php print $veateade; ?></div><?php}?><div id="raam"><!-- ALGAB LISTITABEL --><table class="tabel" border="0" cellpadding="3" cellspacing="0"><tr class="rida_yks"><td width="36" style="width:25px;"> </td><td width="197"><?php print $lang["file_name"]; ?><?php echo Teenool($_GET["sort_by"], $_GET["sort_as"], "nimi", $dir);?></td><td width="167"><span style="width: 100px; text-align: right;"><?php print $lang["delete"]; ?> <?php echo Teenool($_GET["sort_by"], $_GET["sort_as"], "nimi", $dir);?></span></td><td width="100" style="width: 100px; text-align: right;"><?php print $lang["size"]; ?> <?php echo Teenool($_GET["sort_by"], $_GET["sort_as"], "suurus", $dir); ?></td><td width="150" style="width: 150px; text-align: center;"><?php print $lang["last_changed"]; ?><?php echo Teenool($_GET["sort_by"], $_GET["sort_as"], "muudetud", $dir); ?></td></tr><tr class="rida_kaks"><td style="width: 25px;"><img alt="tipo" src="icons/dir.gif" /></td><td><a href="?dir=<?php print $ylemine_dir; ?>">..</a></td><td> </td><td> </td><td> </td></tr><?php//// Kaustade ja failide kuvamine algab//$rida = 1;//// Kuvame kaustad//if($kaustad){foreach ($kaustad as $kaust){$rida_stiil = ($rida ? "rida_yks" : "rida_kaks");?><tr class="<?php echo $rida_stiil; ?>"><td style="width: 25px;"><img alt="tipo" src="icons/dir.gif" /></td><td><?php echo "<a href=\"?dir=".$dir."/".$kaust."\">".$kaust."</a>"; ?></td><td> </td><td> </td><td> </td></tr><?php$rida=!$rida;}}//// Kuvame failid//if($failid){foreach ($failid as $fail){$rida_stiil = ($rida ? "rida_yks" : "rida_kaks");?><tr class="<?php echo $rida_stiil; ?>"><td style="width: 25px;"><img alt="tipo" src="<?php echo Failiikoon($fail["laiend"]); ?>" /></td><td><?phpecho "<a href=\"".$dir."/".$fail["nimi"]."\"";if($ava_uues_aknas)echo "target=\"_blank\"";echo ">".$fail["nimi"]."</a>"; ?></td><td><span style="width: 100px; text-align: right;">Excluir</span></td><td style="text-align: right;"><?php echo Failisuurus($fail["suurus"]); ?></td><td style="text-align: center;"><?php echo Failimuut($fail["muudetud"]);?></td></tr><?php$rida=!$rida;}}}//// Kaustade ja failide kuvamine lõppeb//?></table><!-- LOPPEB LISTITABEL --></div><?phpif($parool){?><!-- ALGAB UPLOADI ALA --><div id="upload"><form enctype="multipart/form-data" action="" method="post"><table width="100%" border="0" cellpadding="10" cellspacing="0" bgcolor="#FFE4E1"> <tr> <td colspan="2" align="left"><center> Enviar arquivos para este diretório. </center></td> </tr><tr><td align="left"><?php print $lang["password"]; ?>: <input type="password" name="parool" /></td><td align="right"> <input name="userfile" type="file" /> <input type="submit" value="<?php print $lang["upload"]; ?>" /></td></tr></table></form></div><!-- LÕPPEB UPLOADI ALA --><?php}?><!-- ALGAB INFOALA --><div id="infoala"><?php//// Konto suuruse arvutamine//$ignore_files = array('..', '.'); $start_dir = getcwd();$size = sum_dir($start_dir, $ignore_files, $dir_levels);$remaining = $max_space - $size;$kokku = round($size/1024, 3);$jargi = round($remaining/1024, 3);?><?php print $lang["total_used_space"]; ?>: <?php print $kokku; ?> MB | <?php print $lang["free_space"]; ?>: <?php print $jargi; ?> MB</div><!-- LOPPEB INFOALA, v3.3 --></body></html>Discussão (12)
Carregando comentários...