PHP:如何使用PHP删除我的网站目录中的图像

时间:2014-11-10 03:37:55

标签: php html mysql

我有以下代码:

<?php

include "../../koneksi.php";

$module=$_GET['module'];
$act=$_GET['act'];
$Gfile_id=$_GET['file_id'];

if ($module=='galleryPhoto' AND $act=='delete'){
    $del=mysql_query("DELETE FROM gallery_photo WHERE file_id='$Gfile_id'");
    header("location:../?v=gallery_foto&info=Success");
}

?>

我可以删除数据库行,但不能删除目录中的图像。如何从目录中删除图像?

2 个答案:

答案 0 :(得分:1)

您可以使用unlink()函数

unlink()

答案 1 :(得分:1)

如果要删除文件,当然不会使用这些功能删除,您需要使用unlink()

unlink('path/to/the/file.png');

强制性注释:

  

Please, don't use mysql_* functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDOMySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial

首先,(我希望)您需要保存要删除的文件的文件名。

然后在删除行之前,您可以先获取该文件名。然后只需在unlink()将使用的路径中添加/连接它:

<?php

// connection
$con = new mysqli('localhost', 'username', 'password', 'database_name');

if(isset($_GET['module'], $_GET['act'], $_GET['file_id'])) {
    $module = $_GET['module'];
    $act = $_GET['act'];
    $Gfile_id = $_GET['file_id'];

    if($module == 'galleryPhoto' && $act == 'delete') {

        // get the file path first that is saved
        $sql = 'SELECT file_path FROM gallery_photo WHERE file_id = ?';
        $select = $con->prepare($sql);
        $select->bind_param('s', $Gfile_id);
        $select->execute();
        $select->bind_result($file_path);
        $select->fetch(); // fetch single row

        // delete the file
        unlink('path/to/images/' . $file_path);

        // then delete that row
        $sql = 'DELETE FROM gallery_photo WHERE file_id = ?';
        $delete = $con->prepare($sql);
        $delete->bind_param('s', $Gfile_id);
        $delete->execute();


        header('Location: ../?v=gallery_foto&info=Success');
    }
}

?>