我有一个ftp站点,该站点承载多个文件。由于我们使用的下载软件的限制,每个文件都在主目录中自己的文件夹中(上传)(每个文件必须有一个唯一的文件路径,文件名必须是modpack.zip(不能是这个名称的任何变体,必须有确切的名称,因此每个版本都在自己的子文件夹中)
我需要找到一种方法,在一个表中列出主上传文件夹所有子目录中的所有文件,以及列出每个文件的大小。每个文件都必须有一个指向它的链接,并且文件夹不需要列出。
到目前为止,我的起点代码是:
<div id="list"><table>
<tr><td align="center">Modpack List</td></tr>
<?php
$dir_open = opendir('uploads/');
while(false !== ($filename = readdir($dir_open))){
$bytes = filesize($_SERVER['DOCUMENT_ROOT']."/uploads/".$filename."");
if($filename != "." && $filename != ".."){
echo '<tr><td><a href="/uploads/'.$filename.'">'.$filename.'</a> - '.bytesToSize($bytes).'</td></tr>';
}
}
closedir($dir_open);
?>
</table>
</div>
我尝试过使用readdir()和scandir(),但两者都列出了我不想要的文件和子文件夹,并且当前设置只列出/uploads下的任何文件和文件夹,除非我单击文件夹,否则不会列出子文件夹下的任何文件,这会将我带到该文件夹的FTP页面。
我已经尝试了我在这里和其他网站上看到的几个发布的解决方案,但都没有达到我的要求,我不知道如何让它省略文件夹作为链接,只列出文件。
尝试使用glob():
<?php
foreach(glob('path-to/UPLOAD_FOLDER/*') as $subDirectory) {
foreach(glob($subDirectory'./*') as $file) {
// do what you want with file here... example:
$file_list .= $file.'<br>';
}
}
echo $file_list;
?>