从管理面板上传文件时,文件权限设置不正确

问题描述:

我从另一位开发人员那里继承了一些代码,并试图解决文件权限问题。本质上,当从自定义管理面板上传文件时,他们会被赋予非常奇怪的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

chmod预计第二个参数是int和你逝去的字符串。 "0755"转换成int是755,而你想0755这是整数值的八进制表示 - 493

所以,你需要改变

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

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

太棒了!简单的解决方案!确实让我感到沮丧。 – 2012-02-03 15:41:00