无法打开php生成的子目录

时间:2014-08-28 20:24:53

标签: php directory

我的代码存在问题。基本上我可以生成和删除现有文件夹中的子目录。但是,当它显示时,它试图打开文件夹而不通过它所在的文件夹。基本上:

主要目录:

generate.php

testCreate.php

testDeleteDir.php

上传(文件夹)

  • 测试(通过上面的php文件生成php文件夹)

当我尝试访问“test”时,它不会通过上传来获取它。我该如何解决这个问题?

PHP代码:  test.php的:

<form action="testCreate.php" method="post">
  Enter the name of Folder: <input type="text" name="name">
  <input type="submit" value="generate">
</form>
<?php
  $path = "./uploads";

  $dir = opendir($path) or die ("unable to open directory");

  while ($file = readdir($dir)){
    if($file == "." || $file == ".." || $file == "test.php" || $file == "testCreate.php" || $file == "testDeleteDir.php"){
      continue;
    }

    echo "<a href='$file'>$file</a><a href='testDeleteDir.php?dir=$file'> Delete</p><br />";
  }

  closedir($dir);
?>

testCreate.php:

<?php
  $dir = $_POST['name'];

  mkdir("./uploads/" . $dir, 0777);

  header("location: test.php");
?>

testDeleteDir.php:

<?php   
  $dir = $_GET['dir'];
  rmdir("./uploads/" . $dir);
  header("location: test.php");
?>

非常感谢任何帮助!谢谢!

2 个答案:

答案 0 :(得分:0)

您是否只需要添加链接路径,如下所示?

echo "<a href='$path$file'>$file</a><a href='testDeleteDir.php?dir=$file'> Delete</p><br />";

现在它读取路径的值和文件目录

答案 1 :(得分:0)

readdir()不包括您正在阅读的目录的路径,例如

$fd = opendir('/etc');
echo readdir($fd);

会回显.,而不是/etc/.

由于您只读取文件名,但是从子目录中读取它们,您必须在html href中包含该子目录:

echo "<a href='uploads/$file'>$file[...snip...]
               ^^^^^^^^