PHPで画像をアップロードした後、透かしを入れるために画像ファイルを書き込み可能にしたい。使用したコードは次のとおりです。
if(isset($_FILES['file_poster']['tmp_name']) && $_FILES['file_poster']['tmp_name'] != '') {
$random_filename = substr(md5(time()), 0, 9);
$ext = '.jpg';
if(strpos(strtolower($_FILES['file_poster']['name']), '.png') > -1) {
$ext = '.png';
}
move_uploaded_file($_FILES['file_poster']['tmp_name'], 'uploads/' . $random_filename . $ext);
chmod(ABS_PATH . $random_filename, 0666);
$random_filename = 'uploads/' . $random_filename . $ext;
// add watermark codes omitted
}
ファイルがアップロードされると、ファイルのパーミッションは644になります。次にchmod()
、書き込み可能(666)に変更しようとしましたが、権限は変更されません。
フォルダの/uploads
パーミッションは777です。chmod()
関数が許可の変更に失敗する理由はありますか? または回避策はありますか?
注: PHP 5 が使用されます。GDは正常に動作しています。