如何使用Unlink()函数

时间:2012-07-13 03:03:56

标签: php file unlink

我正在尝试使用PHP unlink()功能删除文件夹中的特定文档。该特定文件夹已分配给IIS用户的完全权限。

代码:

$Path = './doc/stuffs/sample.docx';
if (unlink($Path)) {    
    echo "success";
} else {
    echo "fail";    
}

保持退货失败。 sample.docx确实驻留在该特定路径上。请建议。

5 个答案:

答案 0 :(得分:10)

我发现了这些信息in the comments of the function unlink()

  

在Windows系统和Apache下,拒绝访问文件是常见的   取消链接文件时出错。要删除文件,您必须更改文件的所有者。   一个例子:

chown($tempDirectory . '/' . $fileName, 666); //Insert an Invalid UserId to set to Nobody Owern; 666 is my standard for "Nobody" 
unlink($tempDirectory . '/' . $fileName); 

所以尝试这样的事情:

$path = './doc/stuffs/sample.docx';

chown($path, 666);

if (unlink($path)) {
    echo 'success';
} else {
    echo 'fail';
}

编辑1

尝试在路径中使用它:

$path = '.'
         . DIRECTORY_SEPARATOR . 'doc'
         . DIRECTORY_SEPARATOR . 'stuffs'
         . DIRECTORY_SEPARATOR . 'sample.docx';

答案 1 :(得分:6)

试试这个:

$Path = './doc/stuffs/sample.docx';
if (file_exists($Path)){
    if (unlink($Path)) {   
        echo "success";
    } else {
        echo "fail";    
    }   
} else {
    echo "file does not exist";
}

如果您的文件不存在,则您的路径错误。如果没有,则可能是权限问题。

答案 2 :(得分:2)

一旦完成权限问题,这应该可以正常工作。也试试

ini_set('display_errors', 'On');  

那会告诉你什么是错的

答案 3 :(得分:0)

您需要感兴趣的文件的完整文件路径。例如:C:\ doc \ stuff \ sample.docx。尝试使用__DIR____FILE__获取您的相对文件位置,以便导航到感兴趣的文件。

答案 4 :(得分:0)

define("BASE_URL", DIRECTORY_SEPARATOR . "book" . DIRECTORY_SEPARATOR);
define("ROOT_PATH", $_SERVER['DOCUMENT_ROOT'] . BASE_URL);

$path = "doc/stuffs/sample.docx";

if (unlink(ROOT_PATH . $Path)) {   
  echo "success";
} else {
  echo "fail";    
}

// http://localhost/book/doc/stuffs/sample.docx
// C:/xampp/htdocs\book\doc/stuffs/sample.docx