2012-02-02 77 views
0

我從另一位開發人員那裏繼承了一些代碼,並試圖解決文件權限問題。本質上,當從自定義管理面板上傳文件時,他們會被賦予非常奇怪的363權限級別,而不是說755或644.我聯繫了主機,他們表示存在文件和文件夾權限問題。我無法通過FTP手動更改文件權限。我得到了照顧。我想要做的是在文件上傳後更改文件權限。它顯示成功,但是當我通過FTP檢查文件時,它仍然是363.是我的代碼錯誤還是有更簡單的方法來解決這個問題甚至。任何幫助,將不勝感激。代碼如下:從管理面板上傳文件時,文件權限設置不正確

function fileUpload($destination, $filename, $codeupname="case") 
    { 

     // set_time_limit(0); 
    // ini_set("post_max_size", "30M"); 
    // ini_set("upload_max_filesize", "30M"); 
    // ini_set("memory_limit", -1); 
     if ($_FILES[$filename]['name'] !="") 
     { 
      $unique_id_query = strtoupper(substr(md5(uniqid(rand(), true)), 0 ,16)); 
      $unique_add  = $unique_id_query; 
      $unique_name  = $destination.$codeupname.$unique_add; 
      //chmod($destnation,"777"); 
      if($_FILES[$filename]["error"] > 0) 
      { 
       //echo $_FILES[$filename]["error"]." - error"; 
       return -1;  // file error 
      } 
      else 
      { 
       $uploadedfile = $_FILES[$filename]['tmp_name']; 
       $destination1 = $unique_name.$_FILES[$filename]['name']; 
       $path   = "../".$destination1; 

       $result  = move_uploaded_file($uploadedfile, $path); 
       if(!$result) 
       { 
        return -1; 
       } 
       else 
       { 
        echo $result; 
        //SET PROPER READ PERMISSIONS 
        $path2 = "/home/content/f/a/c/faccounting/html/".$destination1; 
        echo "PATH: ".$path2."<br />"; 
        $result2 = chmod($path2, "0755"); 
        echo "Result: ".$result2; 
        return $destination1; // returning image name and path 
       } 
      } 
     } 
     else 
     { 
      return -1; // no file persent 
     } 
    } 
+0

你檢查的權限您要上傳到的文件夾? – alfasin 2012-02-02 22:25:35

回答

2

chmod預計第二個參數是int和你逝去的字符串。 "0755"轉換成int是755,而你想0755這是整數值的八進制表示 - 493

所以,你需要改變

$result2 = chmod($path2, "0755"); 

$result2 = chmod($path2, 0755); 
+0

太棒了!簡單的解決方案!確實讓我感到沮喪。 – 2012-02-03 15:41:00