所以,为了简短而甜蜜,服务器是Windows,文件结构看起来像
C:\sites\site1\
我的代码位于
内site1\editor\admin
我有一个简单的PHP函数,它获取文件URL,然后应该取消链接文件。代码从HTTP POST请求中获取URL,该请求提供相对路径,例如
\sites\site1\editor\admin\test.txt
我的PHP看起来如下
$file_url = $_POST["file"];
if(unlink($file_url))
$success = "true";
else $success = "false";
echo $success;
我知道这不是最简单的方法,但我这样做是为了让它在调试时可读。
奇怪的是,如果文件位于\sites\site1\editor
内的任何位置,那么PHP对文件没有问题unlink
。如果它在该文件夹之外(例如C:\sites\site1\
),那么我会收到权限被拒绝错误,但fileperms()
总是给我0666,这意味着它不应该是一个问题。
此外,在您提出要求之前,我已确保所涉及的目录都具有相同的文件权限。这意味着C:\sites\site1\editor
和C:\sites\site1
对所有用户都具有完全相同的权限,因此不应该有任何不同。
我一直在撞墙试图解决这个问题,经过几个小时的谷歌,我仍然无处可去。也许你们可以帮助我......
编辑:忘记提及is_writeable
也为文件返回true。所以
if(is_writeable($file_url)) {
$success = unlink($file_url);
echo $success;
}
将其置于if中但仍返回false,因为它无法取消链接。