PHP取消链接仅在某个目录中工作

时间:2013-06-24 18:15:10

标签: php ajax

所以,为了简短而甜蜜,服务器是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\editorC:\sites\site1对所有用户都具有完全相同的权限,因此不应该有任何不同。

我一直在撞墙试图解决这个问题,经过几个小时的谷歌,我仍然无处可去。也许你们可以帮助我......

编辑:忘记提及is_writeable也为文件返回true。所以

if(is_writeable($file_url)) {
    $success = unlink($file_url);
    echo $success;
}

将其置于if中但仍返回false,因为它无法取消链接。

0 个答案:

没有答案