2013-11-26 37 views
0

我試圖做一個PHP站點上傳文件(在這種情況下的視頻)並顯示它們。我試圖將它們存儲在一個數組中,然後將它們顯示在頁面上。問題是,該頁面僅顯示上傳的最後一個視頻,即該陣列僅存儲上次上傳的文件。我怎樣才能讓數組存儲第一個上傳的文件$array[0],第二個$array[1],等等......然後顯示它們?使用PHP中的數組顯示上傳的文件

這裏是我的代碼(HTML格式)

<form action="upload.php" method="POST" enctype="multipart/form-data"> 
<p>Video to Upload: <br> <input type="file" name="video" /></p> 
<p><input type="submit" name="Submit" value="Submit" /></p></form> 

PHP代碼(upload.php

<?php 
$videoname = $_FILES["video"]["name"]; 


$tmp_name = $_FILES["video"]["tmp_name"]; 

$thevideos = array(); 

if (isset($videoname)) 
{ 
    if (!empty($videoname)) 
    { 
     $location = 'uploaded/'; 

     move_uploaded_file($tmp_name, $location.$videoname); 


     $thevideos[] = $videoname; // the array is only storing $videoname in $the videos[0]?? 


     for ($i = 0; $i <= count($thevideos); $i++) 
     { 
      echo "<video width=\"320\" height=\"240\" controls> 
      <source src=\"/uploaded/" .$thevideos[$i]. "\"> 
      </video> <br>"; 
     } 

    } 
    else 
    { 
     echo "Please choose a file."; 
    } 

} 

?> 
+0

請注意,您允許任何人上傳PHP/ASP/CGI /和其他腳本文件,因此可以上傳shell並銷燬您的服務器 - 查看您的所有文件 - 查看您的所有源代碼 - 您的數據庫憑據 - 等等等等等等。 – h2ooooooo

+0

我完全意識到,一旦程序按其應有的方式運行,我會提出限制。 – user3037589

+0

那麼,用戶一次只能上傳一個視頻?你想顯示所有以前的上傳? '$ thevideos'每次都會是一個空陣列,您需要一種方法來獲取之前上傳的視頻。 –

回答

0

正如評論所說,如果你想獲得內的所有文件的清單目錄中,您應該考慮使用scandirglob函數。

scandir是一個很好的選擇,如果您需要列出目錄中的所有內容,並且glob是一個很好的選擇,如果您需要基於通配符或擴展名列出文件。