无法更改新文件的所有者

时间:2011-09-30 10:36:26

标签: php apache fopen file-ownership

我正在使用PHP检索一些Base64数据,解码并将其写入文件,我的代码工作正常。但是,所有者是apache并且权限非常低,所以即使我FTP进入上传的区域,我也无法下载该文件。但是,我是否更改了权限和所有者,以便我可以更好地控制文件?这是我的代码

$path = "uploads/";
$filename = time().".png";
$full_path = $path.$filename;

$image_encoded = $_POST['image'];
$image_decoded = base64_decode($image_encoded);

$handle = fopen($full_path, 'x+');
fwrite($handle, $image_decoded);
fclose($handle);

2 个答案:

答案 0 :(得分:1)

您可能希望使用chmod更改文件权限。

也许您无权下载它......您可以将其权限更改为755或其他内容......

chmod($full_path, 0755);
$handle = fopen($full_path, 'x+');
//...

http://www.php.net/manual/en/function.chmod.php

你应该可以更改它的权限,因为该文件是由php(所有者)创建的......

答案 1 :(得分:1)

超级用户和文件所有者可以通过以下方式更改所有者:
chown ( string $filename , mixed $user )

可以使用以下方式更改文件的权限
chmod ( string $filename , int $mode )

请注意,您需要对文件的权限使用八进制表示法,字符串表示法在Unix中不起作用!授予文件所有者每个权限,并允许其他用户能够阅读(下载)它,八进制表示法中的permisison是:0744

See Wikipedia for more information about the octal notation of file permissions.