我正在尝试链接到每个子目录和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文件。
答案 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/');
?>