Script PHP Para Exibir Arquivos e Pastas de Um Diretório
Muitas vezes, em determinadas tarefas, precisamos listar os arquivos e pastas de algum diretório específico.
E para facilitar a sua vida, estou disponibilizando um script em PHP totalmente grátis que serve para fazer uma listagem elegante com função de navegação. Ou seja, é possível clicar num arquivo para fazer o download, ou numa pasta para vizualizar seu conteúdo.
Além disso, o script possui uma estrutura que torna fácil um mudança completa de layout, ou a inserção em um layout já pronto.
É claro que este sistema ainda pode ser melhorado. Uma alteração que poderíamos providenciar seria o envio de arquivos por email. Outra seria a contagem de pastas e arquivos. E a última, seria a função de deletar arquivos ou pastas, fazer upload de arquivos e criar pastas.
Quem tiver interesse em ajudar, basta se manifestar comentando.
Ajuda é sempre bem-vinda.
<?php
/*
Script distribuído por brasilphp.net
Qualquer dúvida, escreva para contato@brasilphp.net
Para criação e manutenção de scripts e sistemas, escreva para contato@sobralsites.com
*/
function varSet($VAR) { return isset($_GET[$VAR]) ? $_GET[$VAR] : ""; }
$action = varSet("action");
$pasta = base64_decode(varSet("pasta"));
//Lista dos arquivos que nao serão listados
$denyFiles = array(".htaccess","thumbs.db");
if ($action == "download") {
$file = base64_decode(varSet("file"));
header("Content-disposition: attachment; filename=\"".basename($file)."\"");
readfile(".$file");
exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Listagem de Arquivos</title>
<style type="text/css">
body {
font:11px Verdana, Arial, Helvetica, sans-serif;
padding:0px;
margin:0px;
}
a {
text-decoration:none;
color:#003366;
}
a:hover { color:#0099CC }
.row1 { background-color:#F7F7F7 }
.row2 { background-color:#EBEBEB }
.rowOver { background-color:#C7DCFC }
.extCell { font-weight:bold }
</style>
<script language="javascript" type="text/javascript">
function over(Obj) {
nClass = Obj.className
Obj.className = "rowOver"
Obj.onmouseout = function() {
Obj.className = nClass
}
}
</script>
</head>
<body>
<?php
if ($action == ""):
$fdir = "./$pasta";
chdir($fdir);
$dir = opendir(".");
while ($file = readdir($dir)) if (is_dir($file)) $dirs[] = $file; else $files[] = $file;
$row = 2;
?>
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="50px;"><strong>P.S:</strong> "listar.php" é o arquivo deste sistema</td>
</tr>
<tr>
<td height="50px;"><strong>Exibindo:</strong> ROOT <?php echo empty($pasta) ? "" : $pasta; ?></td>
</tr>
</table>
<table width="700" border="0" align="center" cellpadding="0" cellspacing="0">
<tr style="font-weight:bold">
<td width="55" height="20"> </td>
<td width="204">Nome</td>
<td width="130">Tamanho</td>
<td width="316">Ações</td>
</tr>
<?php if ($pasta != ""): ?>
<tr class="row<?php echo $row; ?>" onmouseover="over(this)">
<td align="center" width="55" height="20" class="extCell">[DIR]</td>
<td><a href="?pasta=<?php echo base64_encode(substr("$pasta",0,strrpos($pasta,"/"))); ?>">..</a></td>
<td>--</td>
<td> </td>
</tr>
<?php endif; ?>
<?php
if (is_array($dirs)) :
sort($dirs);
foreach ($dirs as $nome):
if ($nome == ".." || $nome == ".") continue;
if ($row == 2) $row = 1; else $row = 2;
?>
<tr class="row<?php echo $row; ?>" onmouseover="over(this)">
<td align="center" width="55" height="20" class="extCell">[DIR]</td>
<td><a href="?pasta=<?php echo base64_encode("$pasta/$nome"); ?>"><?php echo $nome; ?></a></td>
<td>--</td>
<td> </td>
</tr>
<?php
endforeach;
endif;
?>
<?php
if (is_array($files)):
sort($files);
foreach ($files as $nome):
if (in_array(strtolower($nome),$denyFiles)) continue;
if ($row == 2) $row = 1; else $row = 2;
$tamanho = filesize("./$nome");
$info = pathinfo("./$nome");
?>
<tr class="row<?php echo $row; ?>" onmouseover="over(this)">
<td align="center" width="55" height="20" class="extCell">[<?php echo strtoupper($info["extension"]); ?>]</td>
<td>
<a href="?action=download&file=<?php echo base64_encode("$pasta/$nome"); ?>"><?php echo $nome; ?></a>
</td>
<td><?php echo $tamanho > 1048576 ? round($tamanho/1048576,2)." Mb" : round($tamanho/1024,2)." Kb"; ?></td>
<td> </td>
</tr>
<?php
endforeach;
endif;
?>
</table>
<?php endif; ?>
</body>
</html>
<?php closedir($dir); ?>
Me siga no Twitter para ficar por dentro das novidades do blog.
Leia Também
Tags: exibir arquivos php, exibir diretórios php, exibir pastas php, listar arquivos diretório php, listar arquivos pasta php, listar arquivos php, listar diretórios php, listar páginas php, Scripts PHP











Legal ou Bobagem:
0
0
Legal ou Bobagem:
0
0
Valeu
Legal ou Bobagem:
0
0
Legal ou Bobagem:
0
0
Legal ou Bobagem:
1
0
Para fazer isso basta alterar a linha 11:
//trocando $pasta = base64_decode(varSet("pasta")); //por $pasta = base64_decode(varSet("plantas"));Isso deve funcionar. Qualquer dúvida, pode perguntar abaixo. Até mais.
Legal ou Bobagem:
0
0
<?php //DE: $pasta = base64_decode(varSet("pasta")); //PARA: $pasta = './arquivos'; ?>Não sei se pode causar problema de desempenho. Mas resolveu…rs
Legal ou Bobagem:
1
0
Legal ou Bobagem:
1
0
Quando mudo
//PARA:
$pasta = ‘./arquivos’;
não consigo abrir os arquivos que está no diretorio.
Ja mudei la embaixo do codigo onde fica:
DE:
$fdir = “./$pasta”;
PARA:
$fdir = “$pasta”;
Mas mesmo assim não consigo abrir os arquivos, não localiza.
Pode me ajudar?
Agradeço!!
Legal ou Bobagem:
0
0
function varSet($VAR) { return isset($_GET[$VAR]) ? $_GET[$VAR] : ""; }na linha 9.
Legal ou Bobagem:
1
0
Legal ou Bobagem:
0
0
Ja pensei no assunto e estou estudando o assunto, pois também sou novato em PHP
Legal ou Bobagem:
1
0
Estava querendo fazer algumas ações como exemplo (rename) mover um arquivo para uma pasta determinada.
Como poderia fazer isso, pois sou novato e não estou conseguindo fazer essa “ação”!
Parabéns pelo site!
Legal ou Bobagem:
1
0