Ir para conteúdo
lerdofphp

Como criar uma lista com nome de arquivos dentro de uma pasta, usando JavaScript e HTML?

Recommended Posts

Pessoal, 

 

Tenho uma pasta com arquivos de texto com datas e gostaria de criar uma lista automática com eles apenas usando HTML e JavaScript isso seria possível?

 

A ideia é que o script realize a pesquise dos arquivos existente na pasta e cria-se o SELECT em HTML.

 

Exemplo:

Pasta: paginas

Arquivos:

- Arquivo-12-07.txt
- Arquivo-13-07.txt
- Arquivo-14-07.txt

 

Resultado Esperado:

 

<select>
  <option value="Arquivo-12-07.txt">Arquivo-12-07.txt</option>
  <option value="Arquivo-13-07.txt">Arquivo-13-07.txt</option>
  <option value="Arquivo-14-07.txt">Arquivo-14-07.txt</option>
</select>

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha cara, ler arquivos diretamente com javascript eu não conheço como, se alguém souber me avisa que eu também me interesso!

 Mas o que você pode fazer é fazer uma chamada ajax para o diretório dos arquivos, e se o servidor for Apache e estiver com Directory Listing ligado para aquele diretório, ele vai retornar uma página listando os arquivos e subdiretórios, dai então você pode percorrer o html retornado e ir pescando o nome dos arquivos. 

Aqui a documentação do Apache que fala do Directory Listing (que a grosso modo é aquela página que você vê quando não tem um arquivo index dentro da pasta): https://wiki.apache.org/httpd/DirectoryListings

Não sei se tem essa opção em outros servidores com nginx ou IIS.  Abç

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ótima sugestão do recurso nativo do Apache, @Klawztro.

 

10 minutos atrás, Klawztro disse:

Olha cara, ler arquivos diretamente com javascript eu não conheço como, se alguém souber me avisa que eu também me interesso!

Se estivermos falando do JS rodando no cliente/navegador, não é possível, pois isso abriria uma brecha de segurança enorme.

É possível ter acesso somente aos arquivos do servidor, independentemente da linguagem utilizada (js ou php por exemplo).

 

Há várias formas de listar diretórios com o PHP, mas as primeiras que eu iria sugerir são essas:

- glob: http://php.net/manual/pt_BR/function.glob.php

- DirectoryIterator: https://secure.php.net/manual/pt_BR/class.directoryiterator.php

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 15/07/2018 at 18:19, Klawztro disse:

Olha cara, ler arquivos diretamente com javascript eu não conheço como, se alguém souber me avisa que eu também me interesso!

 Mas o que você pode fazer é fazer uma chamada ajax para o diretório dos arquivos, e se o servidor for Apache e estiver com Directory Listing ligado para aquele diretório, ele vai retornar uma página listando os arquivos e subdiretórios, dai então você pode percorrer o html retornado e ir pescando o nome dos arquivos. 

Aqui a documentação do Apache que fala do Directory Listing (que a grosso modo é aquela página que você vê quando não tem um arquivo index dentro da pasta): https://wiki.apache.org/httpd/DirectoryListings

Não sei se tem essa opção em outros servidores com nginx ou IIS.  Abç

 

Obrigado pelo apoio!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por BryanSamuel
      Eu preciso somar a coluna SOMA onde a coluna A e a coluna B(ao outro registro, por exemplo A do registro 1 e A do registro 2 forem iguais) forem iguais, após isso dividir por 3 e em seguida inserir em outra tabela.
    • Por clickanapolis
      Bom dia.
      Eu estou na fase de entrega de um projeto e estou com uma dificuldade.
       
      Tenha na primeira linha da minha table onde trago todas as etapas, que hoje são 24 e coloquei essa table dentro de um iframe.
       
      Na primeira coluna tenho as datas.
       
      eu preciso que a primeira linha e a primeira coluna seja bloqueada para a pessoa ter um norte de onde ele esta, pois da maneira que fiz ele some e a pessoal não sabe qual processo e qual data ele esta olhando a produção.
       
      Como me auxiliariam a fazer?
    • Por JrPaulino
      Então...
      Estou com algumas duvidas sobre php, é possível estilizar o php com css? onde for um link colocar um botão, mudar cores, fontes e etc? deixar apresentável :D
       
      Vou deixar o código completo e depois tentar explicar minha duvida.
       
      <?php session_start(); include_once("conexao.php"); ?> <!DOCTYPE html> <html> <head> <title>CRUD - Listar</title> <meta charset="utf-8"> </head> <body> <a href="index.php">Cadastrar</a><br> <a href="listar.php">Listar</a><br> <h1>Listar</h1> <?php if(isset($_SESSION['msg'])){ echo $_SESSION['msg']; unset($_SESSION['msg']); } //receber o numero da pagina $pagina_atual = filter_input(INPUT_GET, 'pagina', FILTER_SANITIZE_NUMBER_INT); $pagina = (!empty ($pagina_atual)) ? $pagina_atual : 1; //setar itens por pagina $qnt_result_pg = 3; //calcular inicio de visualizaçao $inicio = ($qnt_result_pg * $pagina) - $qnt_result_pg; $result_usuarios = "SELECT * FROM usuarios LIMIT $inicio, $qnt_result_pg"; $resultado_usuarios = mysqli_query($conn, $result_usuarios); while($row_usuario = mysqli_fetch_assoc($resultado_usuarios)){ echo "ID: " . $row_usuario['id'] . "<br>"; echo "Nome: " . $row_usuario['nome'] . "<br>"; echo "E-Mail: " . $row_usuario['email'] . "<br>"; echo "Data de criação: " . $row_usuario['created'] . "<br><br>"; echo "<a href='edit_usuario.php?id=" . $row_usuario['id'] . "'>Editar</a><br><hr>"; } // paginação contar usuarios $result_pg = "SELECT COUNT(id) AS num_result FROM usuarios"; $resultado_pg = mysqli_query($conn, $result_pg); $row_pg = mysqli_fetch_assoc($resultado_pg); // echo $row_pg['num_result']; //quantidade de paginas $quantidade_pg = ceil ($row_pg['num_result'] / $qnt_result_pg); //limitar antes e depois $max_links = 2; echo "<a href='listar.php?pagina=1'>Primeira</a>"; for ($pag_ant = $pagina - $max_links; $pag_ant <= $pagina - 1; $pag_ant ++){ if($pag_ant >= 1){ echo "<a href='listar.php?pagina=$pag_ant'>$pag_ant</a>"; } } echo "$pagina"; for ($pag_dep = $pagina + 1; $pag_dep <= $pagina + $max_links; $pag_dep ++){ if($pag_dep <= $quantidade_pg){ echo "<a href='listar.php?pagina=$pag_dep'>$pag_dep</a>"; } } echo "<a href='listar.php?pagina=$quantidade_pg'>Ultima</a>"; ?> </body> </html> Vi diversas video aulas sobre php e em uma das aulas o professor explica como criar uma pagina para listar os usuários cadastrados, uma das duvidas é nessa parte
      Queria criar um botão para não ficar apenas um hiperlink :( , já tentei class, div e não tenho ideia de como fazer isso funcionar 
       
      Valeu :)
    • Por Mech
      Eu tenho uma duvida em relação ao header ou footer.
       
      Assim como em todos os sites, o header ou footer é o mesmo independente da pagina, no caso, a forma mais simples seria dar ctrl+c e ctrl+v e criar pagina. Mas caso eu fosse alterar o conteúdo dela, eu precisaria trocar de pagina em pagina. Teria alguma solução, um framework ou alguma forma de só alterar em uma pagina e alterar em todas paginas?
×

Informação importante

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