如何删除源文件夹中数据库中的图像

时间:2019-02-23 09:11:15

标签: php ajax image

有人可以帮助我如何删除文件夹中的图像吗? 这是我的代码,用于删除数据库中的图像及其工作

<?php
require('connection/dbconn.php');
    if(ISSET($_POST['id'])){

        foreach ($_POST['id'] as $id){
            $dbconn->query("delete from `uploading` where `id` = '$id'");
    }    
}
?>

3 个答案:

答案 0 :(得分:2)

要使用PHP删除文件,您必须使用 unlink function

但是您还必须提供一个文件路径,在您的情况下,该文件路径应该由上载目录路径和fileID($_POST['id']组成)

/**
 * Do user permissions check for this operation before going further
 */
foreach ($_POST['id'] as $fileId) {
    $filePath = "/path/to/upload/dir/$fileId";
    if (file_exists($filePath)) {
        unlink($filePath);
    }
}

不要忘记进行安全性和数据一致性检查。例如,发送此删除请求的用户拥有足够的权限。

答案 1 :(得分:1)

要从服务器删除映像,必须将imageName变量传递给PHP脚本,然后可以使用内置函数unlink()删除文件:

$path = //your path to the upload images

unlink( $path . $imageName);
unlink( $path . 'Thumbnails/' . $imageName); //if also have thumbnail

您正在与服务器文件系统进行交互,因此您需要确定并清理变量(防止他人使用../../../来访问文件系统中不需要的部分)。

$imageName= str_replace( array( '..', '/', '\\', ':' ), '', $imageName);

您应该清理变量以确保转义文件名中的..字符,否则可能会出现类似“ ../../../ public / index.php

更新

您将必须在数据库中存储图像的名称,并在删除表单中创建一个隐藏字段。删除时,将图像名称命名为$image = $_POST['image'];,然后按照unlink的过程进行操作。

答案 2 :(得分:0)

  1. 从数据库中选择图像名称或使用 id
  2. 发送图像名称
  3. 使用unlink功能删除文件图像
unlink('/path-to-upload-dir/' . $_POST['imagename']);