Ir para conteúdo

Arquivado

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

marcossantana10

Problema na listagem de arquivos de diretório

Recommended Posts

Boa noite, galera.

 

Meu problema é o seguinte: tenho um script pra listar os diretórios e os arquivos de dentro desse diretório.

Acontece que tenho problema de codificação e na listagem ele não interpreta os caracteres especiais como acentos e cedilhas, com isso, acaba não encontrando o caminho do arquivo.

 

Até consegui resolver o problema da exibição do nome do arquivo na aplicação usando o utf8_decode, mas, mesmo mostrando o nome corretamente, quando clico pra abrir o arquivo, ele não encontra. É como se ele mostrasse o caractere correto mas interpretasse de uma forma diferente com o utf8_decode.

 

Alguma sugestão?

 

Segue abaixo o script. 

<?php
$baseDir = 'transparencia/'.$dirDinamico;
$abreDir = (@$_GET['dir'] != '' ? $_GET['dir'] : $baseDir);

$strrdir = strrpos(substr($abreDir,0,-1),'/');
$backdir = substr($abreDir, 0,$strrdir+1);

$openDir = dir($abreDir);

while($arq = $openDir -> read()):
    if($arq != '.' && $arq != '..'):
        if(is_dir($abreDir.$arq)){
            echo '<div class="grid-1-3">';
            echo '<div class="transparencia-box">';
            ?>
            <div class="conteudo-box-transparencia">
                <div class="icone-pasta"><a href="<?php echo '?cat='.$categoria.'&dir='.$abreDir.$arq.'' ?>"><img src="img/folder-icon.png"></a></div>
                <div class="titulo-pasta"><span><a href="<?php echo '?cat='.$categoria.'&dir='.$abreDir.$arq.'' ?>"><?php echo $arq ?></a></span></div>
            </div>
            <?php
            echo '</div>';
            echo '</div>';
        }else{
            echo '<div class="grid-1-3">';
            echo '<div class="transparencia-box">';
            $caminho_arquivo = $abreDir.'/'.$arq;
            ?>
                <div class="conteudo-box-transparencia">
                <div class="icone-pdf-transparencia"><a target="_new" href="<?php echo $caminho_arquivo ?>"><img src="img/pdf-transparencia.png"></a></div>

                <div class="titulo-pasta"><span><a target="_new" href="<?php echo $caminho_arquivo ?>"><?php echo strtoupper($arq); ?></a></span></div>
            </div>
            <?php
            // echo '<a target="_new" href="'.$abreDir.'/'.$arq.'">'.strtoupper($arq).'</a><br>';
            echo '</div>';
            echo '</div>';
        }
    endif;
endwhile;

 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por Hacker_Buiu
      Neste tutorial que criei você vai aprender a tirar arquivos desnecessários do Windows sem usar programa:
       
      1)Digite Executar na barra de espaço do Windows 10>Depois digite "prefetch" sem as aspas duplas,exclua todos os arquivos de dentro dessa pasta selecionando-os com Control+a.Se aparecer mensagem,assinale todos para a frase "Selecione tudo isso para todos os arquivos atuais" alguma coisa assim,delete/exclua tudo,se pedir para ignorar clique no botão ignorar todos.
      2)Digite Executar de novo>Agora digite "temp" sem as aspas duplas,de novo selecione tudo apertando no teclado control+a.Delete Tudo.Faça o mesmo processo do que o primeiro.
      3)Digite novamente Executar, só que agora,digite "%temp%" sem as aspas duplas,de novo selecione tudo apertando no teclado control+a,Delete tudo ignorando os arquivos,se tiver em algum desses 3 o arquivo vulkan ou nvidia não delete são os únicos primordiais para funcionar a placa de vídeo.Se deletou dá para restaurar na lixeira,por fim esvazie a lixeira para que o Windows fique mais leve.
    • Por juninhogpe
      Boa tarde.
      Estou com problemas ao subir arquivos no formato MP3 com o código abaixo. Sempre usei ele e hoje apenas aparece erro.
      Abaixo o código:
       
      $titulo = $_POST['titulo']; if ($titulo != ""){ $texto = $_POST['texto']; $padre = $_POST['padre']; $data = date("Y-m-d", strtotime($_POST['data'])); $audio = isset($_FILES["audio"]) ? $_FILES["audio"] : FALSE; $arquivo = isset($_FILES["foto"]) ? $_FILES["foto"] : FALSE; if($arquivo && $audio){ if(!preg_match("/^image\/(pjpeg|jpeg|png|gif|bmp)$/", $arquivo["type"])){ echo utf8_encode("<script> alert ('Arquivo em formato inválido! A imagem deve ser jpg, jpeg, bmp, gif ou png. Cadastro não foi realizado.');</script>"); } if(!preg_match("/^audio\/(mp3|MP3)$/", $audio["type"])){ echo utf8_encode("<script> alert ('Arquivo em formato inválido! erro no upload do audio. Cadastro não foi realizado.');</script>"); } else{ preg_match ("/\.(gif|bmp|png|jpg|jpeg){1}$/i", $arquivo["name"], $ext); $dd = date("msdYiH"); $imagem_nome = $dd. "." . $ext[1]; $imagem_dir = "../am/" . $imagem_nome; $up = move_uploaded_file($arquivo["tmp_name"], $imagem_dir); preg_match ("/\.(mp3|MP3|wav|wma){1}$/i", $audio["name"], $ext); $dd = date("msdYiH"); $audio_nome = $dd. "." . $ext[1]; $audio_dir = "../am/" . $audio_nome; $up_audio = move_uploaded_file($audio["tmp_name"], $audio_dir); if ($up){ $sql = utf8_decode("INSERT INTO palavra (titulo, foto, data, audio, texto, padre) VALUES ('$titulo','$imagem_nome', '$data','$audio_nome', '$texto', '$padre')"); } } }else echo utf8_encode("<script> alert ('Erro no upload.');</script>"); if($conn->query($sql) === TRUE){ echo utf8_encode("<script> alert (\"Cadastro realizado com sucesso.\");</script>"); echo utf8_encode('<script>window.location="palavra.php";</script>'); } else{ echo "Erro: " . $sql . "<br />" .$conn->error; echo utf8_encode('<script>window.location="palavra.php";</script>'); } }  
      O que estou fazendo de errado?
      Obrigado.
    • Por Jefferson andre
      Saudações, como eu faço para monitorar o conteúdo de novos arquivos criados em uma determinada pasta?
       
      Motivo: quando se envia um arquivo para a Sefaz ela retorna alguns arquivos sendo o primeiro o mais importante pois o seu conteúdo informa o nome do próximo é assim por diante.
      Agradeço a ajuda e por sugestões
    • Por Mkn
      Pessoal, eu estou com uma dúvida sobre como retirar o caminho do diretório do meu código fonte. Explicando melhor o meu problema: Eu estou fazendo uma página 99% concluída (em wordpress) onde tenho vídeo aulas que serão acessadas por assinantes regulares. Porém, ao acessar o código fonte o assinante tem acesso ao meu diretório, sendo assim podendo realizar o download do mesmo. Os vídeos estarão no Google Storage.
       
      O código gostaria que ficasse assim:
      data-sourcemp4="video/aulasobrepartitura.mp4"
       
      Ao invés de:
      data-sourcemp4="https://storage.googleapis.com/musiclive-com/assinantes/video/aulasobrepartitura.mp4"
       
      Fiz uma pesquisa na internet e vi que esse código no .htaccess protegeria esses objetos, porém não resolveu.
       
      RewriteCond %{HTTP_REFERER} !^https://www.meudominio.com.br$      [NC]
      RewriteCond %{HTTP_REFERER} !^$ 

      RewriteRule .*\.(jpg|jpeg|gif|png|bmp|mp4|mpeg|mpg|wma|mov|avi)$ - [F,NC]
       
      Obrigado desde já.
       
       
    • Por pandinha_000
      Olá,
      Estou desenvolvendo um código em c++ utilizando manipulação de arquivos .txt (não por ponteiros), e gostaria de saber como fazer para que o algoritmo "pule" a primeira linha em branco do meu arquivo e passe já para a próxima, com dados válidos (na leitura). A propósito, existe a possibilidade de, ao escrever no arquivo, essa primeira linha em branco não exista?
      Desde já agradeço.
×

Informação importante

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