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 に答える