(那么我在stackoverflow和其他网站上经历了很多帖子。我需要一个简单的任务,)
我想提供我的用户工具,点击他的帐户上传文件,然后选择一个目录并获取该目录中所有文件名的列表。
根据这里的帖子,我得到的是我必须预先定义目录名称,我想避免。
有没有一种简单的方法可以点击目录并获取PHP中数组中的所有文件名?非常感谢提前!
$dir = isset($_POST['uploadFile']) ? _SERVER['DOCUMENT_ROOT'].'/'.$_POST['uploadFile'] : null;
if ($_POST['uploadFile'] == true)
{
foreach (glob($dir."/*.mp3") as $filename) {
echo $filename;
}
}
答案 0 :(得分:8)
我会继续发布我目前正在使用的代码示例,并进行一些更改,但我通常会告诉您在Google上查找并首先尝试。
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
echo $file;
}
closedir($handle);
}
这将显示目录的全部内容......包括:“。”,“..”,任何子目录和任何隐藏文件。如果不合适的话,我相信你可以想办法隐藏那些。
答案 1 :(得分:3)
<?php
$files=glob("somefolder/*.*");
print_r($files);
?>
答案 2 :(得分:1)
答案 3 :(得分:1)
我很困惑你想要什么,所有文件还是只有一些文件? 但是,如果您需要文件夹和文件的数组,请执行此操作
$folders = array();
$files = array();
$dir = opendir("path");
for($i=0;false !== ($file = readdir($dir));$i++){
if($file != "." and $file != ".."){
if(is_file($file)
$files[] = $file;
else
$folders[] = $file;
}
}
如果只需要一些文件夹,以后可以从数组中删除它们
答案 4 :(得分:-1)
我总是使用这个神奇的代码来获取文件列表:
$THE_PATTERN=$_SERVER["DOCUMENT_ROOT"]."/foldername/*.jpg";
$TheFilesList = @glob($THE_PATTERN);
$TheFilesTotal = @count($TheFilesList);
$TheFilesTotal = $TheFilesTotal - 1;
$TheFileTemp = "";
for ($TheFilex=0; $TheFilex<=$TheFilesTotal; $TheFilex++)
{
$TheFileTemp = $TheFilesList[$TheFilex];
echo $TheFileTemp . "<br>"; // here you can get full address of files (one by one)
}