0

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);
4

2 に答える 2

1

chmodを使用してファイルのパーミッションを変更することをお勧めします。

おそらくあなたはそれをダウンロードする資格がありません...あなたはそれの許可を755か何かに変更するかもしれません...

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

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

ファイルはphp(所有者)によって作成されたため、権限を変更できるはずです...

于 2011-09-30T10:41:41.617 に答える
1

スーパーユーザーとファイルの所有者は、次の方法で所有者を変更できます。
chown ( string $filename , mixed $user )

ファイルのアクセス許可は、次を使用して変更できます。
chmod ( string $filename , int $mode )

ファイルのパーミッションには8進表記を使用する必要があることに注意してください。Unixのように、文字列表記は機能しません。ファイルの所有者にすべてのアクセス許可を付与し、他のユーザーがそれを読み取れる(ダウンロードできる)ようにするために、8進表記の許可は次のとおりです。0744

ファイルパーミッションの8進表記の詳細については、ウィキペディアを参照してください。

于 2011-09-30T10:50:28.283 に答える