链接到子目录

时间:2017-10-23 17:36:32

标签: php html csv

我正在尝试链接到每个子目录和csv文件。 设置是:

2017
    - file1.csv
    - file2.csv
2016
    -file3.csv
etc...

我使用php如下:

*** **** EDITS 我很欣赏下面的回复,我稍微调整了一下,以提供正确的链接。但是,当我单击年份目录'2013'时,它被拒绝。它链接为'/DeskTracker/Circulation_Files//2013'。我正在努力解决这个问题,但如果有人有任何建议,我们将不胜感激。

<html>
<head>
<title> Circulation Files </title>
</head>
<body>
<a class="navbar-brand" href="DeskTracker.html"> Home </a>
</body>
</html>
<?php
function listFolderFiles($root, $path = ''){
    $ffs = scandir($root . $path);

    unset($ffs[array_search('.', $ffs, true)]);
    unset($ffs[array_search('..', $ffs, true)]);

    // prevent empty ordered elements
    if (count($ffs) < 1)
        return;

    echo '<ul>';
    foreach($ffs as $ff){
        echo '<li><a href="Circulation_Files/'.$path.'/'.$ff.'">'.$ff.'';
        if(is_dir($root.$path.'/'.$ff)) listFolderFiles($root, $path.'/'.$ff);
        echo '</a></li>';
    }
    echo '</ul>';
}

listFolderFiles('//iis-demo/inetpub/GA/DeskTracker/Circulation_Files/');
?>  

目录和文件完美列出,但是当我点击链接时,它不会下载文件。它转而带我到一个错误页面,地址为:

http://Path/To/File/Circulation_Files/2013-August26-December20.csv

路径应该是:

http://Path/To/File/Circulation_Files/2013/2013-August26-December20.csv

由于在2013目录中找到了csv文件。但是,我在链接中包含该目录时遇到问题。

似乎没有列出csv的父目录,例如目录“2013”​​,然后列出其中的csv文件。

1 个答案:

答案 0 :(得分:2)

你应该在这里使用第二个参数,当递归调用函数时,它会被交换。像

这样的东西
<?php
function listFolderFiles($root, $path = ''){
    $ffs = scandir($root . $path);

    unset($ffs[array_search('.', $ffs, true)]);
    unset($ffs[array_search('..', $ffs, true)]);

    // prevent empty ordered elements
    if (count($ffs) < 1)
        return;

    echo '<ul>';
    foreach($ffs as $ff){
        echo '<li><a href="Circulation_Files/'.$path.$ff.'">'.$ff.'';
        if(is_dir($root.$path.'/'.$ff)) listFolderFiles($root, $path.'/'.$ff);
        echo '</a></li>';
    }
    echo '</ul>';
}

listFolderFiles('//iis-demo/inetpub/GA/DeskTracker/Circulation_Files/');
?>