Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

abobre

Leitura de Diretório e Subdiretório

Recommended Posts

Boa tarde,

 

Estou utilizando um script que faz a leitura de um diretório incluindo pastas e arquivos, porem quando eu abro um diretório o visual que montei para o script some e fica a padrão do sistema ( windows ou linux )

 

Veja as imagens:

 

A imagem abaixo mostra a interface montada com as pastas e arquivos, podemos observar que as duas primeiras linhas são

as pastas que tenho no diretório, até essa parte esta tudo ótimo... Veja a segunda imagem !

 

Imagem Postada

 

Nessa segunda imagem é onde eu estou com problema, após eu clicar em um das duas pastas ele abre o diretório e o visual do script muda para o padrão do windows ou linux.

 

Veja a imagem abaixo:

 

Imagem Postada

 

Eu preciso que ao abrir um subdiretório o visual do script permaneça e não mude !

 

Segue o script que estou utilizando:

 

<html>
<head>
<title></title>
<style type="text/css">
#todoform {	
font:12px arial, verdana, helvetica, sans-serif;	
border-top:1px solid #C5C5C5;
border-left:1px solid #C5C5C5;	
border-right:1px solid #C5C5C5;
border-bottom:1px solid #C5C5C5;
border-collapse:collapse;
color:#666666;	
}
#todoform th {
background:#0C83DA;
padding:3px;
font: bold 15px arial, verdana, helvetica, sans-serif;	
border-bottom:1px solid #FFFFFF;	
}
#todoform td {	
padding:3px;	
}
</style>
</head>
<body>
<div align="center">
<?php
			$diretorio = getcwd();
			$ponteiro  = opendir($diretorio);
			$pasta = opendir($listar);
			while (false !== ($nome_itens = readdir($ponteiro))) {
				$itens[] = $nome_itens;
			}
			sort($itens);
			foreach ($itens as $listar) {
			   if ($listar!="." && $listar!=".."){
					if (is_dir($listar))//maldito parênteses
					{
						$pastas[]=$listar;
						$pastas_local[]=$listar1;

						
					} else{
						$arquivos[]=$listar;
					}
			   }
			}
			if ($pastas != "" ) {
			foreach($pastas as $listar){
			   echo "<table width='35%' border='1' cellspacing='1' cellpadding='1' id='todoform'><tr><td width='10%'><img src='folder1.png' border='0'></td><td width='40%'>$listar</td><td width='20%'><a href='$listar'>Abrir</a></td></tr></table>";}
			   }
			if ($arquivos != "") {
			foreach($arquivos as $listar){
			   echo "<table width='35%' border='1' cellspacing='1' cellpadding='1' id='todoform'><tr><td width='10%'><img src='foder2.png' border='0'></td><td width='40%'>$listar</td><td width='20%'><a href='$listar'>Download</a></td></tr></table>";}
			   }

		?>
</div>
</body>
</html>

Obs: Esse script não foi eu que montei, apenas editei ele conforme a minha necessidade !

 

Desejo a todos um feliz ano novo !

 

Desde já agradeço a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

<?php
			$dir = isset($_GET["dir"]) ? base64_decode($_GET["dir"]) : "./";
			$ponteiro  = opendir($dir);
			$pasta = opendir($listar);
			while (false !== ($nome_itens = readdir($ponteiro))) {
				$itens[] = $nome_itens;
			}
			sort($itens);
			foreach ($itens as $listar) {
			   if ($listar!="." && $listar!=".."){
					if (is_dir($listar))//maldito parênteses
					{
						$pastas[]=$listar;
						$pastas_local[]=$listar1;

						
					} else{
						$arquivos[]=$listar;
					}
			   }
			}
			if ($pastas != "" ) {
			foreach($pastas as $listar){
			   echo "<table width='35%' border='1' cellspacing='1' cellpadding='1' id='todoform'><tr><td width='10%'><img src='folder1.png' border='0'></td><td width='40%'>$listar</td><td width='20%'><a href='?dir=".base64_encode($listar)."'>Abrir</a></td></tr></table>";}
			   }
			if ($arquivos != "") {
			foreach($arquivos as $listar){
			   echo "<table width='35%' border='1' cellspacing='1' cellpadding='1' id='todoform'><tr><td width='10%'><img src='foder2.png' border='0'></td><td width='40%'>$listar</td><td width='20%'><a href='".urlencode($listar)."'>Download</a></td></tr></table>";}
			   }

		?>

3 modificações foram feitas no codigo:

1. passou a ser requisitado qual diretorio vai ser listado atraves da variavel $dir, na condição de que, caso ela naum tenha sido declarada, ela assume o valor para o diretorio atual... consequentemente a variavel $diretorio q existia no começo do codigo, ficou sem uso e foi eliminada...

2. os links para abrir os diretorios passaram a usar os nomes das pastas para base64 antes de enviar (por segurança, apesar de naum adiantar muito)

3. os links para download direto dos documentos, passaram a usar a funçao urlencode() pra evitar certos erros...

 

so isso...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Dórian, tudo bem ?

 

Obrigado por estar me auxiliando cara, eu não domino o PHP !!!

 

Eu testei o script cara e ficou bacana, eu gostei das modificaçõs que você fez, ainda mais a que está usando a base64, porem cara eu encontrei "dois erros"

  • Uma que ele não está mais fazendo o download de arquivos que contem espaços, exemplo:( forum imasters.rar ) , ele me retorna o erro informando que o arquivo não existe
  • A outra que quando eu abro um subdiretório e vou fazer o download de qualquer arquivo até mesmo abriu outro subdiretório ele me retorna com o erro dizendo que o arquivo ou diretório não existe

Como posso resolver esse problema ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

qual a possibilidade de fazer isso com um servidor remoto.

 

usabilidade, tenho meus arquivos em meu servidor e quero acessar eles, sem ter que ficar andando com o pendrive ja que a empresa possui sistema de ftp dedicado e nao tenho a senha, quando quero fazer alguma modificacao temos que mandar os arquivos pro servidor e la eles sobem. ou seja, nao tenho o acesso ao fonte e quero ter em minha casa, sem precisar levar o pendrive.

Compartilhar este post


Link para o post
Compartilhar em outros sites

abobre estarei implementado as correções e depois eu posto aqui... eu tava ta casa de parentes, usando o bloco de notas, e com muito sono... malz aew...

 

Marlon Souza explique melhor a sua necessicade... naum entendi muito bem...

 

Feliz ano novo pra vcs ^^

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dórian, Feliz ano Novo, pra você e para todos que estao lendo o post.

 

minha duvida é a seguinte.

 

colocar como no script colocar uma url e ao invez do browser carregar a url, mostrar o codigo fonte do php, ou fazer o download.

 

Se em um servidor ha um arquivo.JS e você sabe o caminho, por exemplo diretorio xyz, você digita www.dominio.com/xyz/ em alguns sites aparece o conteudo do diretorio.

 

Quero fazer o download de um PHP, no caso do JS, basta setar o nome do arquivo.js ou se aparecer na tela o conteudo do diretorio, so fazer o download, ja o php nao tem como qdo clica o browser executa.

 

seria a mesma coisa do script so que ao inves de ser no meu localhost/diretorio, ou seja onde esse arquivo esta salvo, quero digitar a url e fazer o download. Acho meio impossivel. Ja tentei com uma funcao do php nao lembro qual mais o server é bloqueado.

 

Só para frisar, é para a funcao do sms.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dórian, é quase isso, em sintese é isso mesmo, so que eu quero selecionar a pasta atraves da url, tipo www.site.com.br/diretorio, ai seta os dados do diretorio, como em um iis aberto, e a possibilidade de fazer o download dos php's. mais o script ficou show.

 

Eu ja tentei usar o fOpen para abrir o php sem executar o script, mais nao deu certo.

Como devo proseguir?

Compartilhar este post


Link para o post
Compartilhar em outros sites

naum tem como, a nao ser q você tenha acesso através da FTP do site...

 

naum tem como, a nao ser q você tenha acesso através da FTP do site...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite Dórian ,

 

Cara seu script ficou show de bola , gostei de tudo dele cara... Parabéns mesmo.

 

Porem preciso de uma ultima ajuda sua, que ficou faltando no script: O lance do download e de ir ao um diretório adiante e voltar um diretório, porem sempre parando no diretório root.

 

Ele deve ficar que nem esta no meu script que coloquei no primeiro post !

 

Parabéns cara, você deve ser um grande profissional !

 

Obs: Hoje comprei um livro basico de PHP no site da digerati, pra começar a estudar !

 

O que você me recomenda pra aprender a programar em PHP cara ?

 

Abraço cara bom termino de semana !

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.