Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Не могу задать, получить полные права к файлу

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: не могу получить права на созданный мною файл, выкидывает ошибку при использовании ф-ции unlink
HA3IK
Отправлено: 28 Июня, 2013 - 01:38:44
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




Доброго времени суток.

У меня возникла проблема с правами(permission) на созданный мною файл.

-UTF-8(без BOM);
-сервер Денвер;
-PHP Version 5.3.13;
-Windows7;

все файлы находятся в одной директории

PHP:
скопировать код в буфер обмена
  1.  
  2. private static $tmp_file= "__tmp__";
  3. private static $font;
  4.  
  5. private static function set_font(){
  6.  
  7.         self::$font=self::$tmp_file;
  8.  
  9.         $my_font="...";
  10.  
  11.         $handle=fopen(self::$font,"w+");
  12.         fwrite($handle,base64_decode($my_font));
  13.         fclose($handle);
  14.                
  15.         return self::$font;
  16.     }
  17.  
  18. public static function do(){
  19.  
  20.         self::set_font();
  21.  
  22.         ob_start();
  23.        
  24.         ....
  25.  
  26.         ob_end_clean();
  27.        
  28.         unlink(self::$font); /* здесь вообще-то и возникает проблема */
  29. }
  30.  


Выбрасывает ошибку:
Warning: unlink(__tmp__) [function.unlink]: Permission denied in ...\www\functions.php on line №

Использовал разрешение в .htaccess
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <Files "__tmp__">
  3.   allow from all
  4. </Files>
  5.  

...не помогло

Также попытался задать (правда не уверен верно ли Я его разместил, перед fwrite или перед unlink , - испытал 2ва варианта);


Помогите кто нибудь советом, буду очень рад любой вашей помощи.
Заранее спасибо.
Растерялся
 
 Top
VenZell
Отправлено: 28 Июня, 2013 - 08:36:03
Post Id


Частый гость


Покинул форум
Сообщений всего: 237
Дата рег-ции: Июнь 2013  


Помог: 12 раз(а)




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

Ну и попробуй еще проверить, существует ли вообще файл, который ты пытаешься удалить. Может, ты путь неправильно указываешь. Проверь через file_exists

(Отредактировано автором: 28 Июня, 2013 - 08:37:29)

 
 Top
HA3IK
Отправлено: 28 Июня, 2013 - 18:03:00
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




VenZell Спасибо что отписались. Уверен что директория и файл указаны верно и полностью для меня открыты. Скорее всего этот файл используется сервером. Допустим если перезагрузить сервер и сразу попытаться избавиться от файла то все работает.

Как можно убедиться в том что файл не используеться? А если используеться, - остановить все процессы связанные с этим файлом.

(Отредактировано автором: 28 Июня, 2013 - 18:03:43)

 
 Top
VenZell
Отправлено: 28 Июня, 2013 - 20:03:12
Post Id


Частый гость


Покинул форум
Сообщений всего: 237
Дата рег-ции: Июнь 2013  


Помог: 12 раз(а)




Проверь, действительно ли закрывается файл.
PHP:
скопировать код в буфер обмена
  1. echo (fclose($handle)) ? 'Файл закрыт' : 'Файл все еще используется';

Если нет, попробуй использовать следующую конструкцию,

вместо своей:
PHP:
скопировать код в буфер обмена
  1. $handle=fopen(self::$font,"w+");
  2. fwrite($handle,base64_decode($my_font));
  3. fclose($handle);


Сразу говорю, догадка из разряда: "пальцем в небо".

(Отредактировано автором: 28 Июня, 2013 - 20:03:41)

 
 Top
HA3IK
Отправлено: 28 Июня, 2013 - 21:06:49
Post Id


Новичок


Покинул форум
Сообщений всего: 5
Дата рег-ции: Май 2013  


Помог: 0 раз(а)




VenZell
fclose работает, возвращает TRUE
Воспользовался ф-цией file_put_contents, все равно такая же проблема, файл постоянно обрабатывается, занят httpd.exe (директория Денвер\usr\local\apache\bin\httpd.exe)

Как заставить его отцепиться?... Огорчение С чего вообще этот файл остается активным?
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с файловой системой и файлами »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB