php отвязать файл

у меня такая ситуация. Я хочу удалить файл .wav, который находится вне каталога webroot, но я определил в httpd.conf (apache) псевдоним этого каталога, например «mp3». это работает хорошо, потому что я могу загрузить файл из веб-сайта и так далее ... Но я также хочу удалить его, чего я не могу сделать. У меня есть PHP такой скрипт =>

class Delete{
   public function del_directory_record($filename){
    if (unlink("/mp3/$filename")){
        return true;
    }
}
}

 $new = new Delete();
 $new->del_directory_record("file.wav");

В php-ошибках это дает мне «Предупреждение PHP => Нет такого файла или каталога». Меня интересует, что я делаю неправильно?

Все равно не работает...

У меня в C:\server\webroot... и у меня есть каталог mp3_files в C:\server\mp3_files В httpd.conf я написал

Alias /mp3/ "C:/server/mp3_files/"
<Directory "C:/server/mp3_files/">
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>

person DaHaKa    schedule 04.01.2012    source источник


Ответы (2)


Я думаю, вы хотели сделать это относительно вашего DOCUMENT_ROOT:

class Delete {
   public function del_directory_record($filename) {
      return unlink($_SERVER['DOCUMENT_ROOT'] . "/mp3/$filename");
   }
}

$new = new Delete();
$new->del_directory_record("file.wav");

Просто используйте эту автономную функцию, все будет хорошо. Нет необходимости создавать объект или класс.

function delete_directory_record($filename) {
   return unlink($_SERVER['DOCUMENT_ROOT'] . "/mp3/$filename");
}
person Jacob Relkin    schedule 04.01.2012
comment
Спасибо за помощь :) . Я знаю, что только этот скрипт не относится к классу, но это только часть скрипта класса... - person DaHaKa; 04.01.2012
comment
Все равно не работает :(, теперь пишет то же самое Нет такого файла или каталога. Не могу понять что с ним не так - person DaHaKa; 04.01.2012
comment
@DaHaKa Где в вашей файловой системе находится файл file.wav относительно корня документа вашего веб-сервера? - person Jacob Relkin; 04.01.2012
comment
В каталоге webroot у меня нет проблем, все работает хорошо, но за пределами webroot это не так. - person DaHaKa; 04.01.2012

Пытаться

if (unlink("/mp3/".$filename)){
        return true;
    }

или что Джейкоб Релкин написал с корнем документа

person Snake Eyes    schedule 04.01.2012
comment
php использует точку для объединения строк, а не плюс. Просто к сведению. - person James; 04.01.2012
comment
извините, я забыл о сцеплении строк в PHP: P - person Snake Eyes; 04.01.2012