Не могу сменить владельца нового файла - PullRequest
0 голосов
/ 30 сентября 2011

Я использую 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 ]

1 голос
/ 30 сентября 2011

Суперпользователь и владелец файла могут сменить владельца на:
chown ( string $filename , mixed $user )

Разрешения для файлов можно изменить с помощью:
chmod ( string $filename , int $mode )

Обратите внимание, что вам нужно использовать восьмеричную нотацию для прав доступа к файлам, строковую нотацию, как в Unix, не будет работать! Чтобы предоставить владельцу файлов каждое разрешение и позволить другим пользователям быть в состоянии прочитать (скачать) это, разрешение в восьмеричной записи: 0744

См. Википедию для получения дополнительной информации о восьмеричной записи прав доступа к файлу.

1 голос
/ 30 сентября 2011

вы можете использовать chmod для изменения прав доступа к файлу.

Возможно, у вас нет прав на его загрузку ... Вы можете изменить его разрешения на 755 или что-то еще ...

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

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

Вы должны иметь возможность изменить его разрешения, поскольку файл был создан php (владельцем) ...

...