Explorando diretórios na minha rede via PHP

0

Eu quero ler todos os diretórios de um diretório especificado via PHP. (infelizmente eu não sou bom o suficiente em VB / C / Java para fazer uma solução mais eficiente)

Com este código, eu consegui ler todos os arquivos de / tmp / por exemplo, sou um usuário de Mac.

<?php
$config = array(

    'dir' => '/Volumes/Data/Media-Server/Musik/Sortiert', // path to scan
    'depth' => 2, // depth of scan
    'html' => true // html output (bool)

);

if(file_exists($config['dir'])) {

    if(is_readable($config['dir'])) {

        $array = scandir($config['dir']);
        print_r($array);

    }

}
?>

Mas eu só recebo uma página em branco quando tento com o meu servidor de mídia de rede. Você tem alguma pista para eu pegar os diretórios?

PS: Eu tenho acesso total de r / w / x ao servidor.

    
por tqn 14.03.2012 / 19:38

2 respostas

0

Eu executei o script no meu próprio servidor. Ele funciona no meu tmp e home , mas não no diretório /home/user . Então basta dizer que seu script funciona. O que não me dizem são as permissões de arquivo, então eu adicionei uma cláusula else ao seu script usando o fileperms como seguido:

else{
    echo substr(sprintf('%o', fileperms($config['dir'])), -4);
}

Agora, quando você atualizar a página, deverá obter o valor octal das permissões.

Minha pergunta para você agora é: quais valores são retornados quando você atualiza o script? Você montou a unidade de rede com permissões suficientes para que o servidor da Web possa acessá-la? No mínimo, as permissões de arquivo que devem ser impressas são 0755

    
por 14.03.2012 / 20:16
0

Seu script faz algumas verificações na acessibilidade de arquivos, mas não tem como mostrar onde ele falhou. Eu consideraria adicionar algumas condições simples aos seus scripts que gerariam o ponto de falha.

IE:

<?php
$config = array(

    'dir' => '/Volumes/Data/Media-Server/Musik/Sortiert', // path to scan
    'depth' => 2, // depth of scan
    'html' => true // html output (bool)

);

if(file_exists($config['dir'])) {

    if(is_readable($config['dir'])) {
        $array = scandir($config['dir']);
        print_r($array);
    }else {
        die("Unable to read file.");
    }

}else {
    die("File not found.");
}
?>

Este é um exemplo simples, é claro que pode ser mais elaborado no tratamento de erros, mas isso deve ajudá-lo a identificar se o arquivo é ilegível ou não encontrado.

Espero que isso ajude, boa sorte & codificação feliz.

    
por 14.03.2012 / 20:19