chmod & copy

  • Автор темы Автор темы Space
  • Дата начала Дата начала

Space

Новичок
chmod & copy

суть: существует некий файл, с атрибутами chmod 644,
мне надо вместо него поместить новый, т.е. старый удалить.

после отправки файла, выдается ошибка:

Warning: Unable to create 'photos/girls/466/1.jpg': Permission denied in /home/spy/public_html/brides/my_param.php on line 284


код:


Код:
//Назначение: Удаление файлов и копирование вместо них новых.
if(!empty($photor1_name))
  {
	$file = "photos/".$user_gender."/".$user_id."/1.".strtolower($photo1_prop)."";
@chmod("$file", 777);   

	if (is_dir($file))
	{
	RmDirR ($file);
	}
	list($photo_n,$rass) = split('[.]',$photor1_name);
	copy($photor1, "photos/".$user_gender."/".$user_id."/1.".strtolower($rass)."");
  }


И почему не изменяется chomd файла на 777? в строке @chmod("$file", 777);
 
по поводу чмода неизменяемого - я тож с этой проблемой сталкивался. Тут, на сколько я понимаю, суть в том, что php работает от группы www (обычно) ну а владельцем твих файлов являешься ты (group users) ну и php просто не имеет права менять пермишенсы на файле, владельцем которого не являеца и/или чмод не позволяет ей это сделать. в общем круг замкнутый. Можно чмод вручную менять, но это отстой полный.

тут я так и не нашел лучшего пути, кроме как @unlink($oldfile) и copy($_FILES['tmpname'],$oldfile);

вот...
 
блин. не работает.

<?
if(!empty($photor1_name))
{
$file = "photos/".$user_gender."/".$user_id."/1.".strtolower($photo1_prop)."";
@unlink($file);

list($photo_n,$rass) = split('[.]',$photor1_name);
copy($photor1, "photos/".$user_gender."/".$user_id."/1.".strtolower($rass)."");

}
?>
 
@chmod($file,0777);

Переменные брать в кавычки не нужно.
 
все равно не работает. тут нужен другой подход...
я же меняю chmod через брозверь? так. соответственно в файле-исполнителе надо как то прописать права на исполнение... :(
 
Сразу хочу спросить можно ли прописать юзера или права, под которыми будет писать файлики апача в .htaccess?
 
>я же меняю chmod через брозверь?
Ты о чём, вообще?
 
тут я так и не нашел лучшего пути, кроме как @unlink($oldfile) и copy($_FILES['tmpname'],$oldfile);

Если апач не имеет права записи на файл, пхп скрипт не сможет ни стереть, ни изменить файл, не сможет изменить права на него.
Если файл аплоадится по фтп для последующих изменений через пхп скрипты, надо конфигурить фтп сервер так, чтобы файлы ложил с соответствующими правами.
 
а вот с конфигурацией обычно проблемы.

на самом деле именно такоим способом (см. @unlink()) я и решил оную проблему. Бред конечно, но решил.
 
Сверху