我一直想弄清楚为什么我的Php代码给了我一个恼人的错误。我尝试了以前的帖子中的无数函数,但它给出的错误是“Permission Denied”。从我的理解要么我必须有特殊的权限删除文件等。我已经尝试了多个解决方案,但我仍然得到这个错误。如果有人能指出我正确的方向,这将是伟大的。我在下面发布了我的代码片段。感谢
$first_sub = "my_dir";
if(is_dir($first_sub)){
$read_sub1 = opendir($first_sub);
while(false !== ($files = readdir($read_sub1))){
if($files!="." && $files!=".."){
unlink($first_sub ."/". $files);
}
}
closedir($read_sub1);
答案 0 :(得分:4)
您应该为服务器目录设置适当的权限: 访问:http://bd1.php.net/chmod
<?php
// Read and write for owner, nothing for everybody else
chmod($first_sub ."/". $files, 0600);
// Read and write for owner, read for everybody else
chmod($first_sub ."/". $files, 0644);
// Everything for owner, read and execute for others
chmod($first_sub ."/". $files, 0755);
// Everything for owner, read and execute for owner's group
chmod($first_sub ."/". $files, 0750);
?>
在unlink
之前,您可以调用此函数。
答案 1 :(得分:0)
我从unlink权限被拒绝了。 但我解决了。错误显示如下unlink(../ foldername /)Permission denied。
我的错误代码是这样的:
$image = select_table('webpage', 'wp_name', '$id');
$update = "UPDATE webpage SET wp_image = NULL, wp_modifiedby = '{$position}', wp_datemodified = '{$date_now}' WHERE wp_name = '{$id}'";
if ( unlink('../webpage/'.$image_dir) && $qry_update = mysqli_query($connection, $update) ) {
// success
} else {
// failed
}
现在我解决了 我的正确代码是这样的:
$image = select_table('webpage', 'wp_name', $id);
$update = "UPDATE webpage SET wp_image = NULL, wp_modifiedby = '{$position}', wp_datemodified = '{$date_now}' WHERE wp_name = '{$id}'";
if ( unlink('../webpage/'.$image['wp_image']) && $qry_update = mysqli_query($connection, $update) ) {
// success
} else {
// failed
}
答案 2 :(得分:0)
对于登陆此页面的人来说,可能就像没有将$files
设置为现有文件一样简单。
很不幸,但我发现消息:Warning: move_uploaded_file(): Unable to move
也可能意味着file not found
。
不太可能是这个OP问题的原因,但当然值得验证您传递的变量所代表的文件实际存在于目录中。