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

Php 从管理面板上载文件时,文件权限设置不正确,php,permissions,upload,chmod,Php,Permissions,Upload,Chmod,我从另一个开发人员那里继承了一些代码,并试图解决一个文件权限问题。基本上,当文件从自定义管理面板上传时,它们会被授予非常奇怪的363权限级别,而不是755或644权限级别。我联系了主机,他们说文件和文件夹权限有问题。我无法通过FTP手动更改文件权限。我已经处理好了。我试图做的是在上传文件后更改文件权限。它显示成功,但当我通过FTP检查文件时,仍然是363。是我的代码错了,还是有更简单的方法来解决这个问题。任何帮助都将不胜感激。代码如下: function fileUpload($dest

我从另一个开发人员那里继承了一些代码,并试图解决一个文件权限问题。基本上,当文件从自定义管理面板上传时,它们会被授予非常奇怪的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 
        }
    }
函数fileUpload($destination,$filename,$codeupname=“case”)
{
//设置时间限制(0);
//ini_套装(“立柱最大尺寸”,“30M”);
//ini_集(“上传最大文件大小”,“30M”);
//ini设置(“内存限制”,-1);
如果($\u文件[$filename]['name']!=“”)
{
$unique_id_query=strtoupper(substr(md5(uniqid(rand(),true)),0,16));
$unique\u add=$unique\u id\u query;
$unique\u name=$destination.$codeupname.$unique\u add;
//chmod($Destination,“777”);
如果($_文件[$filename][“错误”]>0)
{
//echo$_文件[$filename][“error”]。“-error”;
return-1;//文件错误
}
其他的
{
$uploadedfile=$\u文件[$filename]['tmp\u名称'];
$destination1=$unique\u name.$\u文件[$filename]['name'];
$path=“../”$destination1;
$result=移动上传的文件($uploadedfile,$path);
如果(!$result)
{
返回-1;
}
其他的
{
回声$结果;
//设置正确的读取权限
$path2=“/home/content/f/a/c/faccounting/html/”$destination1;
回显“路径:.”路径2.“
”; $result2=chmod($path2,“0755”); echo“结果:.$result2; 返回$destination1;//返回图像名称和路径 } } } 其他的 { return-1;//不存在文件 } }
chmod
要求第二个参数为int,您正在传递字符串<代码>“0755”转换为int是755,而您想要的是
0755
,它是整数值-493的八进制表示

所以你需要改变

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


chmod
要求第二个参数为int,您正在传递字符串<代码>“0755”转换为int是755,而您想要的是
0755
,它是整数值-493的八进制表示

所以你需要改变

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


你检查了你上传到的文件夹的权限了吗?你检查了你上传到的文件夹的权限了吗?太好了!一个简单的解决方案!确实帮我省了点麻烦。太好了!一个简单的解决方案!当然,这让我省去了一些挫折。