2017-03-31 53 views
0

我正在爲我正在開發的程序製作圖片上傳功能,但是我似乎無法獲得move_uploaded_file來移動我的文件,但我不知道爲什麼。PHP Move_uploaded_file不移動我的文件到目錄

我收到的表單數據,我可以看到數據時,我使用的print_r函數print_r($_FILES)

我的目錄結構如下所示 root->app->lib->uploadCode.phproot->app->images

我沒有得到任何錯誤。 我在ubuntu 16.04上用php7安裝了這個版本

這是我的代碼。

<?php 
error_reporting(E_ALL); 
if(!empty($_FILES['newImage']['name'])) 
{ 
    $fname = $_FILES['newImage']['name']; 
    $fext = explode(".",$fname); 
    $sex = array("jpg", "jpeg", "JPG", "JPEG", "png", "PNG");//Supported extensions 
    //Check if file extension supported 
    $extRes = array_intersect($fext, $sex);//Checks to see if file uploaded extension exists in the supported extension array 
    if(count($extRes) == 1) 
    { 
     print_r($_FILES); 
     $name = $_FILES['newImage']['name']; 
     $ext = end($fext); 
     $tmp = $_FILES['newImage']['tmp_name']; 
     $path = '/../images/'; 
     $newName = uniqid().".".$ext; 
     /*if(move_uploaded_file($tmp,$path.$newName)) 
     { 
      echo "uploaded"; 
     } 
     else 
      { 
       echo "not uploaded"; 
       echo $path.$newName; 
      }*/ 

     move_uploaded_file($tmp,$path.$newName); 
    } 
    elseif(count($extRes) > 1) 
     {//More than just one file extension was found possibly something like image.png.jpg 
      echo 02; 
     } 
     else 
      {// Nothing was found so wrong file type was used 
       echo 01; 
      } 
}else 
    {//Do if no image was uploaded 
     echo 00; 
    } 

`

+0

BTW這些命令,所有的'00,01,02'是八進制;爲他們使用引號。 –

回答

0

無論是從$path = '/../images/';取出開口斜線或設置的完整路徑,例如例如/home/username/images/

+0

謝謝你的建議,我嘗試刪除開始的斜槓,只是有'../圖像/'我也嘗試了完整的路徑,但仍然沒有運氣 –

+0

如果您將'$ path'設置爲完整路徑,然後'回聲'那麼你看到了什麼? – Chris

+0

起初我以爲它可能是一個權限問題,但我將目錄設置爲cmod -R 777,並且我使用chown授予非root用戶權限也 –

0

這是一個許可問題。

我必須對我的www/html目錄執行以下操作。

sudo chown -R username:www-data /var/www/html/ sudo chmod 775 /var/www/html/ sudo chmod g+s /var/www/html 一旦我跑,我能夠上傳