0

我在上传/project1/update 中有文件。

问题是,只有更新中的文件被删除。我想删除文件夹上传中的目录...也就是说,文件夹名称“project1”和“update”也会在更新中的文件被删除后删除。你能帮我找出错误吗?

$id = $_GET['id'];
$filename = $_GET['filename']; //gets the file name eg:update.zip
$fname = $_GET['fname']; //gets the folder name eg: project1
$upload = "upload/";

$name = explode(".", $filename);
$folder = $fname."/".$name[0];

$files = glob($upload.$folder.'/*'); // get all file names
foreach($files as $file)
{ // iterate files
if(is_file($file))
 unlink($file); // delete file dlm folder

}

closedir($name[0]); //close update dir
rmdir($name[0]); //remove update dir

这个编码给出警告

警告:closedir() 期望参数 1 是资源,

警告:rmdir(更新)[function.rmdir]:没有这样的文件或目录..

但是在目录上传中,有这个文件project1/update。

此外,文件名是“update.zip”只是数据库中的名称而已..不在目录中。

4

1 回答 1

0

您不能closedir()在以前未使用opendir()PHP 函数打开(并存储在文件句柄中)的目录上。如果你愿意,closedir()你需要先使用opendir(). 这是根据 PHP 手册: http: //php.net/manual/en/function.closedir.php

此外,如果您想要rmdir()一个目录,它需要完全为空,并且您需要适当的权限。否则,你会得到错误。这也是根据 PHP 手册: http: //php.net/manual/en/function.rmdir.php

于 2013-03-01T07:13:28.937 回答