2013-01-08 67 views
0

我想將文件上傳到使用PHP創建的目錄。應用程序應根據用戶的用戶ID在根目錄內創建一個子目錄。 (例如文件/ 14 /)。PHP - 創建並上傳到目錄

目錄正在創建,但是文件沒有被上傳到子目錄。

這是代碼:

<?php 


       include("dbConfig.php"); 

       $Username = $_SESSION["username"]; 

       global $userid; 

       $Password = $_SESSION["password"]; 

       $Password = md5($Password); 

       $sql = "SELECT UserID FROM users WHERE Username = '".$Username."'"; 

       $result = mysql_query($sql) or die(mysql_error()); 

       while($row = mysql_fetch_assoc($result)) { 

         $userid = $row['UserID']; 

       } 


       echo $userid; 

       $dirname = (string)$userid; 

       $filename = ("/folder/" . "$dirname" . "/"); 

       if (!file_exists($filename)) 

       { 

          mkdir("files/$dirname", 0777); 

          if (isset($_FILES['files'])) { 

          echo "<div id='files_table'><table class='center'.><tr><td>"; 

          $dest = ("files/" . $dirname . "{$_FILES['files']['name'][$key]}"); 

          foreach($_FILES['files']['tmp_name'] as $key => $tmp_name){ 

          move_uploaded_file($tmp_name, $dest); 

          echo $_FILES['files']['name'][$key], " uploaded.", "<br>"; 

          } 

       }else { 


         if (isset($_FILES['files'])) { 

         echo "<div id='files_table'><table class='center'.><tr><td>"; 

          $dest = ("files/" . $dirname . "{$_FILES['files']['name'][$key]}"); 

          foreach($_FILES['files']['tmp_name'] as $key => $tmp_name){ 

          move_uploaded_file($tmp_name, $dest); 

          echo $_FILES['files']['name'][$key], " uploaded.", "<br>"; 


        } 
        echo "</td></tr></table></div><br><br>"; 
        } 




       } 

      } 

Directory Structure

回答

0

腦, PHP支持一個文件上傳在同一時間,如果你在你的形式很多文件中的字段,你應該保持「$ DEST = (「files /」。$ dirname。「{$ _FILES ['files'] ['name'] [$ key]}」);「在循環。 $ Key將在循環外部爲空。

循環不能在temp_name上,temp_name是php要上傳的文件的臨時副本。

+0

的HTML 5上傳表單可以讓你一次(每個文件的5MB大小限制) – Brian

0

這是修改後的代碼:

注意:我更正了代碼中的一些錯誤。請比較。

<?php 
include("dbConfig.php"); 
$Username = $_SESSION["username"]; 
global $userid; 
$Password = $_SESSION["password"]; 
$Password = md5($Password); 

$sql = "SELECT UserID FROM users WHERE Username = '".$Username."'"; 

$result = mysql_query($sql) or die(mysql_error()); 
while($row = mysql_fetch_assoc($result)) { 
    $userid = $row['UserID']; 
} 


$dirname = (string)$userid; 
$filename = ("$dirname" . "/"); 
if (!file_exists($filename)) { 
    mkdir("files/$dirname", 0775); 
} 

if (isset($_FILES['files'])) { 
    echo "<div id='files_table'><table class='center'.><tr><td>";   
    foreach($_FILES['files']['tmp_name'] as $key => $tmp_name){ 
     $dest = ("files/" . $dirname . "{$_FILES['files']['name'][$key]}"); 
     move_uploaded_file($tmp_name, $dest); 
     echo $_FILES['files']['name'][$key], " uploaded.", "<br>"; 
    } 

} 

?>

+0

它仍然顯示了同樣的錯誤,同樣的事情發生上傳多個文件。文件上傳到根目錄 – Brian