1

(好吧,我在stackoverflow和其他网站上浏览了很多帖子。我需要一个简单的任务,)

我想为我的用户提供从他的帐户单击上传文件的功能,然后选择一个目录并获取该目录中所有文件名的列表。

根据这里的帖子,我得到的是我必须预先定义目录名称,这是我想避免的。

有没有一种简单的方法可以单击目录并在 PHP 中获取数组中的所有文件名?提前谢谢了!

  $dir = isset($_POST['uploadFile']) ? _SERVER['DOCUMENT_ROOT'].'/'.$_POST['uploadFile'] : null;
  if ($_POST['uploadFile'] == true) 
    {
     foreach (glob($dir."/*.mp3") as $filename) {
     echo $filename;
    }
  }
4

5 回答 5

8

我将继续发布我目前正在使用的代码示例,并进行一些更改,尽管我通常会告诉您在 google 上查找并先尝试。

if ($handle = opendir($dir)) {
    while (false !== ($file = readdir($handle))) {
        echo $file;
    }
    closedir($handle);
}

这将显示目录的全部内容...包括:“.”、“..”、任何子目录和任何隐藏文件。我相信如果不需要的话,你可以想办法隐藏它们。

于 2012-07-12T17:37:46.337 回答
3
<?php
$files=glob("somefolder/*.*");
print_r($files);
?>
于 2012-07-12T18:08:26.320 回答
1

看看Directory课程(这里)和readdir()

于 2012-07-12T17:36:08.033 回答
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;
   }
}

如果只有一些你想要的文件夹,以后你可以从数组中删除它们

于 2012-07-12T17:41:12.197 回答
-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)
  } 
于 2014-01-26T06:20:24.197 回答