在PHP中删除文件

时间:2013-10-24 15:55:35

标签: php forms loops

希望你们可以帮助我,因为我真的很喜欢这个。

我正在成为CMS的一部分,用户可以在其中查看,上传和删除存储在目录中的图像。但是当用户单击“删除”时,它只会删除目录中的最后一个图像。当用户点击“删除”时,似乎没有获得图像的名称。

这是我到目前为止的代码:

if (isset($_POST['deletebutton'])){
$link = "../../images/gallery/".$_POST['id'];
unlink($link);
}

if ($handle = opendir('../../images/gallery')) {
    while (false !== ($entry = readdir($handle))) {
        if ($entry != "." && $entry != "..") {
            echo "<div class='photobox'><img src='../../images/gallery/".$entry."' class='img'><input type='hidden' value='".$entry."' name='id'><input type='submit' class='deletebutton' name='deletebutton' value='Delete'></div>";
        }
    }
    closedir($handle);
}
?>

提前致谢

1 个答案:

答案 0 :(得分:2)

您可能需要将每组<input/>包装在单独的<form/>标记中。如果PHP看到多个具有相同名称的输入,则只需要最后一个。例如......

<form method="get" action="#">
  <input type="hidden" name="foo" value="bar" />
  <input type="submit" />
  <input type="hidden" name="foo" value="baz" />
  <input type="submit" />
</form>

无论您点击哪个提交,浏览器都会将表单编码为?foo=bar&foo=baz,PHP将按顺序阅读,并为您留下$_REQUEST['foo'] == 'baz'