Я хочу прочитать все каталоги указанного каталога через PHP. (к сожалению, я не достаточно хорош в VB/C/Java, чтобы сделать более эффективный обходной путь)

С помощью этого кода я мог читать все файлы из /tmp /, например, я пользователь 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);

    }

}
?>

Но я получаю пустую белую страницу, только когда пытаюсь сделать это на своем сетевом медиа-сервере. У вас есть какие-нибудь подсказки для меня, чтобы получить каталоги?

PS: я получил полный r/w/x доступ к серверу.

2 ответа2

0

Я запустил ваш скрипт на моем собственном сервере - он работает на моем tmp и home но не в каталоге /home/user . Достаточно сказать, что ваш сценарий работает. Что он не говорит мне, так это права доступа к файлу, поэтому я добавил к вашему сценарию условие else, используя метод fileperms, как показано ниже :

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

Теперь, когда вы обновите страницу, вы должны получить восьмеричное значение разрешений.

Мой вопрос к вам сейчас, какие значения возвращаются при обновлении сценария? Вы подключили сетевой диск с достаточными разрешениями, чтобы веб-сервер мог получить к нему доступ? Как минимум, права доступа к файлу, которые должны быть напечатаны, равны 0755

0

Ваш скрипт выполняет несколько проверок доступности файла, но не может показать, где он потерпел неудачу. Я хотел бы рассмотреть несколько простых условий для ваших сценариев, которые выводят точку отказа.

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.");
}
?>

Это простой пример, конечно, можно более подробно разобраться с обработкой ошибок, но это должно помочь вам точно определить, является ли файл нечитаемым или не найден.

Надеюсь, что это поможет, удачи и счастливого кодирования.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .