Php 取消链接($filename):权限被拒绝警告

Php 取消链接($filename):权限被拒绝警告,php,unlink,Php,Unlink,当我尝试使用unlink()时,我的警告被拒绝 我创建了一个从目录中删除图像的函数: function del($fnam){ chmod('content/'.$fnam, 0777); chown('content/'.$fnam,465); unlink('content/'.$fnam); } 我在阅读了论坛上的文章后使用了chmod()和chown(),但我仍然收到了警告,并且图片没有被删除 当我从不同的地方叫它时,它是多么迷人 if($temp2==1){ /

当我尝试使用unlink()时,我的警告被拒绝

我创建了一个从目录中删除图像的函数:

function del($fnam){
chmod('content/'.$fnam, 0777);   
chown('content/'.$fnam,465);
unlink('content/'.$fnam);   
}
我在阅读了论坛上的文章后使用了chmod()和chown(),但我仍然收到了警告,并且图片没有被删除

当我从不同的地方叫它时,它是多么迷人

if($temp2==1){      //For Delete
$sql="delete from blog where b_id=$temp1";
$im=fetch('blog','b_img','b_id='.$temp1);

//Deleting Image

    del($im);
}
上面的代码没有任何功能(以过程方式运行),这给了我积极的回应。
如何修复此问题?

尝试更改内容目录的权限

function del($fnam){
   chmod('content/, 0777);   
   unlink('content/'.$fnam);   
}

不幸的是,您的代码假设
chmod
chown
始终有效,这是一个错误的假设

如果您没有正确的权限,它们也可能失败

像这样更改代码,它应该会告诉您实际出了什么问题

function del($fnam){
    if ( ! chmod('content/'.$fnam, 0777) )  {
        echo 'chmod failed';
    }
    if ( ! chown('content/'.$fnam,465) ) {
        echo 'chown failed';
    }

    if ( ! unlink('content/'.$fnam) ) {  
        echo 'unlink failed';
    }

}

您没有得到预期的结果,因为:

根据手册:

尝试将文件名的所有者更改为用户。只有超级用户可以更改文件的所有者

只有当应用程序以root用户身份运行时,它才会起作用,我确信情况并非如此

根据手册:

尝试将指定文件的模式更改为模式中给定的模式


基本上,如果您没有正确的权限,chmod和unlink将不起作用。

在这种情况下,您无法使用php删除文件,因为php没有足够的权限。如果您无法从上面更改权限,请尝试使用FTP进行攻击 (我知道它不常见,但它的工作原理和它可以帮助您个人使用)


您需要对包含目录具有写入权限才能删除文件,因为必须将该目录文件修改为“删除”文件。您确定要将正确的参数传递给del函数吗?@MarcB是的,我传递的参数是正确的,因为当我在其他任何地方调用该函数时,该函数工作正常,即使是参数错误,它也可能会因无效文件名或无效路径而弹出错误,但它没有。@MarcB如何修改该文件以删除?thanks@Ajaz你有shell访问权限或ftp访问权限?我找到了它,只是重新编写了整个代码,而且工作起来很神奇。lol计算机很奇怪。如果它无法删除,我怀疑它是否可以更改权限。这取决于你的托管能力和权限
// set up basic connection
$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// try to delete $file
if (ftp_delete($conn_id, $file)) {
 echo "$file deleted successful\n";
} else {
 echo "could not delete $file\n";
}