当我尝试使用unlink()时,我的权限被拒绝了。
我创建了i函数来删除内容目录中的图像:
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);
}
上面的代码不在任何函数中(以程序方式运行),这给了我积极的回应。 如何解决?
答案 0 :(得分:0)
不幸的是,您的代码假定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';
}
}
答案 1 :(得分:0)
您没有得到预期的结果,因为:
根据手册chown:
尝试将文件filename的所有者更改为用户user。只有超级用户才能更改文件的所有者。
只有当您的应用程序以root身份运行时才会起作用,我确信情况并非如此。
根据手册chmod:
尝试将指定文件的模式更改为模式中的模式。
基本上,如果您没有正确的权限, chmod 和 unlink 将无效。
答案 2 :(得分:0)
这种情况你不能用php删除文件,因为如果你不能从上面改变权限,你就没有足够的权限,试试用FTP攻击 (我知道它不常见,但它的作品,它可以帮助你个人使用)
// 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";
}
答案 3 :(得分:-1)
尝试更改内容目录的权限
uiHandler.postDelayed(new Runnable() {
@Override
public void run() {
Intent goToMenu = new Intent(getApplicationContext(), MainMenu.class);
goToMenu.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(goToMenu);
}
}, 500);