从管理面板上传文件时,文件权限设置不正确
问题描述:
我从另一位开发人员那里继承了一些代码,并试图解决文件权限问题。本质上,当从自定义管理面板上传文件时,他们会被赋予非常奇怪的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
}
}
答
chmod
预计第二个参数是int和你逝去的字符串。 "0755"
转换成int是755,而你想0755
这是整数值的八进制表示 - 493
所以,你需要改变
$result2 = chmod($path2, "0755");
到
$result2 = chmod($path2, 0755);
+0
太棒了!简单的解决方案!确实让我感到沮丧。 – 2012-02-03 15:41:00
你检查的权限您要上传到的文件夹? – alfasin 2012-02-02 22:25:35