我在upload / 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'只是数据库中的名称..不在目录中。
答案 0 :(得分:0)
对于之前未使用closedir()
PHP函数打开(并存储在文件句柄中)的目录,您不能opendir()
。如果您想要closedir()
,则需要首先使用opendir()
获取此目录的文件句柄。这是根据PHP手册:http://php.net/manual/en/function.closedir.php
此外,如果您想rmdir()
一个目录,它需要完全为空,您需要相应的权限。否则,您将收到错误。这也是根据PHP手册:http://php.net/manual/en/function.rmdir.php