2012-07-12 64 views
0

(好吧我經歷了很多這裏的帖子在計算器和其他網站的走了。我需要一個簡單的任務,)得到PHP從目錄中的所有文件名

我想提供我的用戶設施點擊從他的賬戶上傳文件,然後選擇一個目錄並獲取該目錄內所有文件名的列表。

根據這裏的帖子我得到的是我必須預先定義目錄名稱,我想避免。

是否有一種簡單的方法來單擊一個目錄並獲取PHP中的數組中的所有文件名?提前謝謝了!

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

在PHP中沒有點擊事件。此外,您遇到的問題還不清楚,您不會提及您嘗試將代碼作爲基礎的帖子,也不會在此處發佈代碼。這只是一個問問題的有用方式。如果($ handle = opendir(「。」))while(false!==($ file = readdir($ handle))){ echo $ file。「\ – hakre 2012-07-12 17:41:17

+0

也作爲回答之一。 N「; } closedir($ handle); },但它會返回在我的NetBeans IDE目錄中打開的文件的名稱,而我想從通過單擊網頁上的選擇文件按鈕打開的目錄中獲取文件名。 – Saqib 2012-07-12 18:13:15

回答

8

我會繼續和張貼我目前使用的,有一些改變代碼的樣本,雖然我通常會告訴你在谷歌上查找它並首先嚐試。

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

這將顯示一個目錄的全部內容......包括:「。」,「..」,任何子目錄和任何隱藏文件。我相信你可以找出一種方法來隱藏那些不合意的東西。

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; 
    } 
} 

如果你想只有一些文件夾,以後你可以從陣列中刪除他們

3
<?php 
$files=glob("somefolder/*.*"); 
print_r($files); 
?> 
0

我一直用這個驚人的代碼獲取文件列表:

$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) 
    } 
相關問題