Ir para conteúdo
Fórum Script Brasil
  • 0

Listar arquivo de um diretorio


Brudu

Pergunta

Olá gente,

bom estou com uma duvida, tenho varios arquivos em um diretorio tipo

www.xxx.com/arquivo

ao acessar na web fica assim (Index of /arquivo)

não aparece os arquivos.

na pasta so tem arquivos .jpg,

gostaria de que aparecer uma lista de todos os arquivos que tem na pasta.

minha hospedagem é da uol, mais andei buscando e vir que tem uns scripts, mais não deu certo nenhum.

Link para o comentário
Compartilhar em outros sites

14 respostass a esta questão

Posts Recomendados

  • 0

A UOL bloqueia a listagem do conteúdo dos diretórios.

Você pode utilizar a função readdir() fazer o que precisa.

Um exemplo retirado da própria documentação do PHP:

<?php
// Note que !== não existia antes do PHP 4.0.0-RC2

if ($handle = opendir('/path/to/files')) {
    echo "Manipulador de diretório: $handle\n";
    echo "Arquivos:\n";

    /* Esta é a forma correta de varrer o diretório */
    while (false !== ($file = readdir($handle))) {
        echo "$file\n";
    }

    /* Esta é a forma INCORRETA de varrer o diretório */
    while ($file = readdir($handle)) {
        echo "$file\n";
    }

    closedir($handle);
}
?>

Link para o comentário
Compartilhar em outros sites

  • 0

path/to/files(caminho/para/arquivos)

ele colocou como exemplo..

pela sua mensagem ficaria algo como /home/xteam/public_html/arquivo/

ou

/home/xteam/public_html/arquivo/imagens

ou seja, é o local onde seus arquivos que vai listar estão

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta esse código ai :

<?

$diretorio = "URL DO SITE E PASTA";
// abre o diretório
$ponteiro  = opendir($diretorio);
// monta os vetores com os itens encontrados na pasta
while ($nome_itens = readdir($ponteiro)) {
    $itens[] = $nome_itens;
}
// ordena o vetor de itens
sort($itens);
// percorre o vetor para fazer a separacao entre arquivos e pastas
foreach ($itens as $listar) {
// retira "./" e "../" para que retorne apenas pastas e arquivos
   if ($listar!="." && $listar!=".."){

// checa se o tipo de arquivo encontrado é uma pasta
           if (is_dir($listar)) {
// caso VERDADEIRO adiciona o item à variável de pastas
            $pastas[]=$listar;
        } else{
// caso FALSO adiciona o item à variável de arquivos
            $arquivos[]=$listar;
        }
   }
}
// lista as pastas se houverem
if ($pastas != "" ) {
foreach($pastas as $listar){
   print "";}
   }
// lista os arquivos se houverem
if ($arquivos != "") {
foreach($arquivos as $listar){
   print "$listar";}
   } else {
   echo "Não há nenhuma pagina.";
   }
?>

OBS:: Esse código não é de minha autoria, tinha ele guardado aki e resolvi postar, mas não é de minha autoria!

Posta o resultado aew!

Link para o comentário
Compartilhar em outros sites

  • 0

deu erro

Warning: opendir(www.xxx.com/arquivo) [function.opendir]: failed to open dir: No such file or directory in /home/xteam/public_html/arquivo/index.php on line 5

Warning: readdir(): supplied argument is not a valid Directory resource in /home/xteam/public_html/arquivo/index.php on line 7

Warning: sort() expects parameter 1 to be array, null given in /home/xteam/public_html/arquivo/index.php on line 11

Warning: Invalid argument supplied for foreach() in /home/xteam/public_html/arquivo/index.php on line 13

Não há nenhuma pagina.

Link para o comentário
Compartilhar em outros sites

  • 0
Outra vez você precisa trocar o www.xxx.com/arquivo.

Recomendo uma boa estudada em PHP.

<?

$diretorio = "www.xxx.com.br/arquivo";

// abre o diretório

$ponteiro = opendir($diretorio);

// monta os vetores com os itens encontrados na pasta

while ($nome_itens = readdir($ponteiro)) {

$itens[]= $nome_itens;

}

// ordena o vetor de itens

sort($itens);

// percorre o vetor para fazer a separacao entre arquivos e pastas

foreach ($itens as $listar) {

// retira "./" e "../" para que retorne apenas pastas e arquivos

if ($listar!="." && $listar!=".."){

// checa se o tipo de arquivo encontrado é uma pasta

if (is_dir($listar)) {

// caso VERDADEIRO adiciona o item à variável de pastas

$pastas[]=$listar;

} else{

// caso FALSO adiciona o item à variável de arquivos

$arquivos[]=$listar;

}

}

}

// lista as pastas se houverem

if ($pastas != "" ) {

foreach($pastas as $listar){

print "";}

}

// lista os arquivos se houverem

if ($arquivos != "") {

foreach($arquivos as $listar){

print "$listar";}

} else {

echo "Não há nenhuma pagina.";

}

?>

então leandro, eu alterei, estar ai o codigo que coloquei no index.php da pasta no local

www.xxx.com.br/arquivo/index.php

Link para o comentário
Compartilhar em outros sites

  • 0

$diretorio = "www.xxx.com.br/arquivo"; não deve ser seu caminho.. voce esta colocando isto como exemplo??

alternativa 1-

fale com o pessoal que hospeda e peça para eles passarem o caminho fisico de sua conta

alternativa 2-

faz assim

crie um arquivo chamado caminho.php

e nele somente a linha:

<? echo "<h1>O caminho que tenho que usar no programa é : ".getcwd()."</h1:";?>

envie este arquivo para o local que vai ser armazenado seu script

e vá no navegador e coloque o seu dominio/local que salvou/caminho.php

onde tem dominio voce troca pelo nome que registrou

e no local que salvou é o caminho onde esta o script

imagine que seu dominio seja www.scriptbrasil.com.br

e tenha salvo dentro da pasta sistema / upload

então vai ficar assim

www.scriptbrasil.com.br/sistema/upload/caminho.php

O resultado que aparecer vai ser o path (caminho) que vai ter que usar no script que vai salvar as paginas

vai ser algo como /home/brudu/public_html/sistema/upload (isto é apenas um exemplo você tem que usar o que aparecer para voce)

alternativa 3-

contratar alguém para fazer isto

que mais mastigado que esta é impossivel

Link para o comentário
Compartilhar em outros sites

  • 0

jissa, me desculpa pelo meu grau de conhecimento na Área.

tenho pouco conhecimento com php.

jissa, deu certo o oque você me falou.

mais estava pensando que iria aparecer diferente.. os arquivos apareceram da seguinte maneira.

Ex.:

bolad.cdrcaminho.phpindex.phpadurgente.cdr

ficou todo no formato de texto, tem como organizar alfabeticamente e no formato de links?

da mesma maneira que, quando acessa uma hospedagem em um diretorio aparece os arquivos ao clicar em cima, pode baixar.. e os detalhes no lado, tamanho, data, ..

Link para o comentário
Compartilhar em outros sites

  • 0

Sem problemas.. todo mundo já passou por isto, coloquei detalhado para você entender como pegar este caminho..

//quebra de linha adicuinar <br>

//para colocar link

//ordenar usar a função sort() antes de fazer o foreach

##baseado neste script acima ficaria:

if ($arquivos != "") {

sort($arquivos);

foreach($arquivos as $listar){

print "<br><a href='$listar'>$listar</a>";

} else {

echo "Não há nenhuma pagina.";

}

?>

Editado por jissa
Link para o comentário
Compartilhar em outros sites

  • 0
<?

$diretorio = "/home/xteam/public_html/arquivo";

// abre o diretório

$ponteiro = opendir($diretorio);

// monta os vetores com os itens encontrados na pasta

while ($nome_itens = readdir($ponteiro)) {

$itens[]= $nome_itens;

}

// ordena o vetor de itens

sort($itens);

// percorre o vetor para fazer a separacao entre arquivos e pastas

foreach ($itens as $listar) {

// retira "./" e "../" para que retorne apenas pastas e arquivos

if ($listar!="." && $listar!=".."){

// checa se o tipo de arquivo encontrado é uma pasta

if (is_dir($listar)) {

// caso VERDADEIRO adiciona o item à variável de pastas

$pastas[]=$listar;

} else{

// caso FALSO adiciona o item à variável de arquivos

$arquivos[]=$listar;

}

}

}

// lista as pastas se houverem

if ($pastas != "" ) {

foreach($pastas as $listar){

print "";}

}

// lista os arquivos se houverem

if ($arquivos != "") {

sort($arquivos);

foreach($arquivos as $listar){

print "<br><a href='$listar'>$listar</a>";

} else {

echo "Não há nenhuma pagina.";

}

?>

jissa, rsrs so estou te dando trabalho!

rsrs então.. alterei esse codigo no final da lista, mais estar dando erro.

Parse error: syntax error, unexpected T_ELSE in /home/xteam/public_html/arquivo/index.php on line 37

Link para o comentário
Compartilhar em outros sites

  • 0

faltou fechar a chave no final do if !="" só colocar }

if ($arquivos != "") {

sort($arquivos);

foreach($arquivos as $listar){

print "<br><a href='$listar'>$listar</a>";

} else {

echo "Não há nenhuma pagina.";

}

}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...