2011-12-19 129 views
0

我對PHP相當陌生,並且試圖通過move_uploaded_file函數上傳圖像,請查看代碼部分,並請幫助。順便說一句,我使用IE8,如果它是nessecary:不能move_uploaded_file甚至不執行

$name = $_FILES['fileToUpload']['name']; 
$basename = @basename($name); 
$msg .= " File Name: ". $_FILES['fileToUpload']['name'] .", "; 
$msg .= " File Size: ". @filesize($_FILES['fileToUpload']['tmp_name']); 
if (isset($_GET['id'])) { 
$id = $_GET['id']; 
//check and/or create dir for user images 
if (!is_dir("uploads\\".$id."\\images")) { 
$dir = "uploads\\".$id."\\images"; 
mkdir($dir, 0777); 
if (!move_uploaded_file($basename, $dir)){$msg = "COULD NOT MOVE FILE";} 
} 
} 

的$消息「無法動彈FILE」不執行該文件沒有被移動提前 感謝。

+0

我懷疑該行不會因'if'語句是在執行所有請證實。 – deceze 2011-12-19 04:35:50

+0

'var_dump($ msg);' – 2011-12-19 04:36:57

+0

你是對的,它沒有執行,因爲dir上傳/.$ id./images已經被創建。謝謝 – AlphaPhantom 2011-12-19 04:53:45

回答

0

它可能有助於使用完整路徑,什麼是雙反斜槓,也許這是一個Windows的東西。我想象你正在執行的這個目錄是不可寫的,並且它不能創建你要求的mkdir目錄,因此無法創建該文件。

0

嘗試:

 
//check if you have form enctype="multipart/form-data" in your form as well 
$name = $_FILES['fileToUpload']['name']; 
    $basename = @basename($name); 
    $msg .= " File Name: ". $_FILES['fileToUpload']['name'] .", "; 
    $msg .= " File Size: ". @filesize($_FILES['fileToUpload']['tmp_name']); 
    if (isset($_GET['id'])) { 
    $id = $_GET['id']; 
     //check and/or create dir for user images 
     if (!is_dir("uploads/".$id."/images")) { 
      $dir = "uploads/".$id."/images"; 
      mkdir($dir, 0777); 
      if (!move_uploaded_file($_FILES['fileToUpload']['tmp_name'], $dir."/".$basename)){$msg = "COULD NOT MOVE FILE";} 
     } 
    }   
相關問題