【问题标题】:Deleting specific files in PHP在 PHP 中删除特定文件
【发布时间】:2019-06-30 18:21:19
【问题描述】:

所以我创建了一个带有php 的小型管理面板,它将文件上传到将显示在主页上的目录中。 现在的问题是,如何删除文件? 我已经看到人们正在使用 AjaxjQuery 来执行此操作,但我不明白如何使用按钮执行此操作。

这是我生成图像和删除按钮的函数,但是当有人单击该按钮时,它应该删除关联的图像,我不知道如何传递图像路径或其他东西:

$dirname = "img_show/";
$images = glob($dirname."*.{jpg,gif,png}",GLOB_BRACE);

foreach($images as $image) {
     echo '<img src="'.$image.'" width="25%" /><br/>';
     echo '<form method="post">
            <input type="submit" name="delete" value="Effacer" />
            </form>';
 }

【问题讨论】:

  • @TristanVerneesch 你问的是如何删除管理员上传的图片?
  • 是的,这就是我想要做的。管理员有一个所有上传图片的列表,应该可以删除一个特定的。
  • @Nipun 上传文件不需要数据库。也不一定需要确定哪个用户是管理员(如果这是您要问的)
  • “我只是不知道如何运行 unlink($myFile) 并用按钮上方的文件替换变量” ...如果您将相同的变量放入隐藏字段你的表单然后它会在你提交表单时作为 $_POST 变量发送到服务器
  • @Nipun OP 在这里所做的只是将文件名作为要删除的项目传递。您无需阅读其他教程即可实现这一点。由于所有图像都在同一个文件夹中,因此暗示所有文件名必须是唯一的,因此它可以工作。我并不是说这是最好的方法,甚至根本不是好方法,但这是可能的。 OP 可能应该添加措施以确保其他文件(例如 PHP 文件或其他文件夹中的文件)不能被恶意请求删除......目前此代码存在安全问题,但在基本层面上它可以做到工作

标签: php jquery ajax file-io


【解决方案1】:

您似乎正在尝试删除从“img_show”目录检索的文件,而不是将其存储在数据库中。

删除所选文件的最简单方法是使用以下代码更新您的代码,

// Delete an image if the delete button was clicked
if(isset($_POST['delete']) && $_POST['delete'] == 'Effacer') {
    unlink($_POST['file']);
}


// Print the available list of images in the directory
$dirname = "img_show/";
$images = glob($dirname."*.{jpg,gif,png}",GLOB_BRACE);

foreach($images as $image) {
    echo '<img src="'.$image.'" width="25%" /><br/>';
    echo '<form method="post">
    <input type="hidden" name="file" value="'. $image .'" />
    <input type="submit" name="delete" value="Effacer" />
    </form>';
}

【讨论】:

    猜你喜欢
    • 2013-03-20
    • 2017-11-23
    • 2013-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多