在使用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正常工作。
ABSPATH
?我猜测ABSPATH
和相对的uploads
目录指向不同的位置。 - PhilABS_PATH
是文件夹的绝对路径前缀,例如/var/www/
。由于上传成功,绝对路径和相对路径都指向同一文件夹。 - Raptor