После загрузки изображения с помощью 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. ГД работает исправно.
ABSPATH? Я предполагаю, чтоABSPATHи относительный каталогuploadsуказывают на разные места - person Phil   schedule 07.03.2013ABS_PATH— префикс абсолютного пути к папке, например./var/www/. Абсолютный и относительный пути указывают на одну и ту же папку, так как загрузка прошла успешно. - person Raptor   schedule 07.03.2013