2015-07-19 90 views
0

我有一個class的名稱輸入。在此class內是function,其被稱爲iData。這function是用來獲取文件上傳數據,這裏的功能。move_uploaded_file()不會移動文件

public static function iData($item, $spec = '') 
{ 
    if (isset($_FILES[$item])) { 
     if ($spec == '') { 
      return $_FILES[$item]; 
     }else{ 
      $f = $_FILES[$item]; 
      if($f[$spec]) { 
       return $f[$spec]; 
      } 
     } 
    } 
    return false; 
} 

但在我controller(通過我使用的MVC設計模式的方式),當我告訴它移動它沒有保存文件。這是我的controller的代碼。

if (!empty(Input::iData('file', 'name'))) { 
    if (is_dir('assets/')) { 
     if (move_uploaded_file(Input::iData('file', 'name'), 'assets/')) { 
      echo "File was moved!"; 
     } else { 
      echo "File failed to move!"; 
     } 
    } 
} else { 
    echo "Please include a file to upload!"; 
} 

我的頁面echo s「File failed to move!」。所以如果該目錄存在,我知道輸入classiData函數返回名稱,有什麼問題?

+0

驗證您是否有權將文件放在那裏。 – akmozo

+0

我確實擁有正確的權限。 –

+0

您需要在'$ _FILES [$ item] ['tmp_name']'中使用臨時名稱作爲調用'move_uploaded_file()'的源文件。 – 2015-07-19 00:45:19

回答

1

所有已修復。非常感謝Hobo Sapiens

我本來應該使用tmp_name而不是name。而且,我將所需的文件名從move_uploaded_file的第二個參數中刪除。