从文件夹中删除图像PHP

j2datikz  于 2023-03-07  发布在  PHP
关注(0)|答案(8)|浏览(276)

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

eaf3rand

eaf3rand1#

有几条途径。第一条,最简单的,就是把它变成一种形式;当它提交时,您对POST数据做出React,并使用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 请求来代替提交表单,服务器端代码看起来与此非常相似。

文档和相关阅读资料

wribegjk

wribegjk2#

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

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

axkjgtzd3#

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

if (file_exists($filePath)) 
               {
                 unlink($filePath);
                  echo "File Successfully Delete."; 
              }
              else
              {
               echo "File does not exists"; 
              }
ojsjcaue

ojsjcaue5#

你可以试试这段代码.这是一个简单的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");
  }
}
?>
pxyaymoc

pxyaymoc6#

<?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');
    }

?>
juud5qan

juud5qan7#

<?php
$path = 'img/imageName.jpg';
if (is_file($path)) {
    unlink($path);
} else {
    die('your image not found');
}
qrjkbowd

qrjkbowd8#

对于任何人想要删除所有.png文件从当前目录开始,我已经创建了一个小脚本。它遍历所有可用的文件夹(只有一个级别),搜索所有.png文件并删除它们:

$dirs = array_filter(glob('*'), 'is_dir');

foreach ($dirs as $directory) {
    $images = glob($directory . "/*.png");

    foreach ($images as $image) {
        echo "DELETING: " . $image . "<br>";
        unlink($image);
    }
}

如果脚本位于应用程序文件夹(app/index.php)中,它将在所有app/{folderName}中搜索(一级).png文件并删除它们。您可以将.png更改为.jpg或您需要的。

相关问题