我正在尝试使用PHP unlink()
功能删除文件夹中的特定文档。该特定文件夹已分配给IIS用户的完全权限。
代码:
$Path = './doc/stuffs/sample.docx';
if (unlink($Path)) {
echo "success";
} else {
echo "fail";
}
保持退货失败。 sample.docx确实驻留在该特定路径上。请建议。
答案 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