40

我有一个保存图像的文件夹,名为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"

4

7 回答 7

71

有几条路线。一个,最简单的,就是把它变成一种形式;当它提交时,您对 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 请求,而不是提交表单。服务器端代码看起来与此非常相似。

文档和相关阅读

于 2013-02-21T15:37:39.000 回答
30

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

unlink('path/to/file.jpg');
于 2013-02-21T15:25:45.987 回答
5

首先检查图像是否存在?如果是,那么只需调用 unlink(your file path) 函数来删除您的文件,否则向用户显示消息。

              if (file_exists($filePath)) 
               {
                 unlink($filePath);
                  echo "File Successfully Delete."; 
              }
              else
              {
               echo "File does not exists"; 
              }
于 2018-02-01T13:32:46.560 回答
3

对于删除使用http://www.php.net/manual/en/function.unlink.php 希望你能写逻辑?

于 2013-02-21T15:27:26.237 回答
2

你可以试试这段代码。这是从服务器中删除简单 PHP 图像的代码。

<form method="post">
<input type="text" name="photoname"> // You can type your image name here...
<input type="submit" name="submit" value="Delete">
</form>

<?php
if (isset($_POST['submit'])) 
{
$photoname = $_POST['photoname'];
if (!unlink($photoname))
  {
  echo ("Error deleting $photoname");
  }
else
  {
  echo ("Deleted $photoname");
  }
}
?>
于 2016-11-01T05:27:15.073 回答
1
<?php

    require 'database.php';

    $id = $_GET['id'];

    $image = "SELECT * FROM slider WHERE id = '$id'";
    $query = mysqli_query($connect, $image);
    $after = mysqli_fetch_assoc($query);

    if ($after['image'] != 'default.png') {
        unlink('../slider/'.$after['image']);
    }

    $delete = "DELETE FROM slider WHERE id = $id";
    $query = mysqli_query($connect, $delete);

    if ($query) {
        header('location: slider.php');
    }

?>
于 2019-04-11T08:38:21.013 回答
0
<?php
$path = 'img/imageName.jpg';
if (is_file($path)) {
    unlink($path);
} else {
    die('your image not found');
}
于 2021-12-13T19:11:51.490 回答