【问题标题】:php unlink filephp取消链接文件
【发布时间】:2012-02-02 09:14:06
【问题描述】:

我有这样的情况。我想删除 webroot 目录之外的 .wav 文件,但我已经在该目录的 httpd.conf (apache) 别名中定义了“mp3”。这很好用,因为我可以从 webroot 下载文件等等......但我也想删除它,我不能这样做。我有这样的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-errors 中它给了我“PHP 警告 => 没有这样的文件或目录” 我对我做错了什么感兴趣?

还是不行……

我在 C:\server\webroot... 我在 C:\server\mp3_files 有目录 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>

【问题讨论】:

    标签: php unlink


    【解决方案1】:

    我认为你的意思是相对于你的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");
    }
    

    【讨论】:

    • 感谢您的帮助:)。我知道只有这个脚本不属于 class ,但它只是部分 class 脚本...
    • 它仍然不起作用:(,现在它写给我相同的没有这样的文件或目录。我猜不出它有什么问题
    • @DaHaKa 在您的文件系统中,“file.wav”相对于您的 Web 服务器的文档根目录位于何处?
    • 在 webroot 目录中我没有问题,一切都很好,但在 webroot 之外它没有
    【解决方案2】:

    试试

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

    或 Jacob Relkin 使用文档根编写的内容

    【讨论】:

    • php 使用句点连接字符串,而不是加号。仅供参考。
    • 对不起,我忘了 PHP 中的字符串 concat :P
    猜你喜欢
    • 2016-10-04
    • 2012-08-05
    • 2012-02-02
    • 2017-05-06
    • 1970-01-01
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多