从文件夹 PHP 中删除图像

php
2022-08-30 12:09:36

我有一个文件夹,用于保存图像,名为 .我有一张桌子,上面有我所有的图片:img/

<table border="3">
    <tr>
        <td>    
            <?php
            $files = glob("img/*");
            foreach ($files as $file) {
                echo "<div class='divimages'>"; 
                echo '<img src="'.$file.'"/>';
                echo "<input type='submit' value='Delete image'/><br>";
                echo "</div>";  
            }
            ?>
        </td>
    </tr>   
</table>

如何删除与按钮关联的图像,该值为:。"Delete image"


答案 1

有几条路线。一个,最简单的,将涉及将其制成一种形式;当它提交时,您对POST数据做出反应并使用unlink

免责声明:这是不安全的。攻击者可以使用此代码删除服务器上的任何文件。您必须扩展此演示代码以添加一些安全措施,否则您可能会遇到不好的事情

每个图像的显示标记将包含如下形式:

echo '<form method="post">';
  echo '<input type="hidden" value="'.$file.'" name="delete_file" />';
  echo '<input type="submit" value="Delete image" />';
echo '</form>';

...并在同一 PHP 文件的顶部:

if (array_key_exists('delete_file', $_POST)) {
  $filename = $_POST['delete_file'];
  if (file_exists($filename)) {
    unlink($filename);
    echo 'File '.$filename.' has been deleted';
  } else {
    echo 'Could not delete '.$filename.', file does not exist';
  }
}
// existing code continues below...

您可以使用javascript详细说明这一点:您可以发送AJAX请求,而不是提交表单。服务器端代码看起来与此非常相似。

文档和相关阅读


答案 2

您可以使用unlink()函数删除PHP中的文件。

unlink('path/to/file.jpg');

推荐