PHP仅在特定目录中解除链接

PHP仅在特定目录中解除链接,php,ajax,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)) $su

所以,简而言之,服务器是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在取消文件链接方面没有问题。如果它在该文件夹之外(例如,
C:\sites\site1\
),则我会收到一个权限拒绝错误,尽管
fileperms()
总是给我0666,这意味着它不应该是一个问题

另外,在您询问之前,我已经确保有问题的目录都具有相同的文件权限。这意味着
C:\sites\site1\editor
C:\sites\site1
对所有用户都具有完全相同的权限,因此不应该有任何不同

我一直把头撞在墙上想弄明白这一点,但在谷歌搜索了几个小时后,我仍然一无所获。也许你们可以帮我

EDIT:忘了提到
是可写的
也会为文件返回true。所以

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

使其位于if中,但仍然返回false,因为它无法取消链接

谁是文件的所有者?尝试更改它以匹配服务器
yoursite.com/thisScript.php?file=c:/windows/system32/command.com
==服务器已损坏。你不应该这样做。
取消链接($file\u url)
你的意思是你那么信任用户输入???echo
$file\u url=$\u POST[“file”]
并查看得到的结果,将打印的URL粘贴到浏览器中,然后检查图像是否出现。这与Ajax无关。B.t.w.,你很幸运,这只在某些目录中有效。