删除数据库列后删除文件夹

时间:2016-01-10 13:32:48

标签: php codeigniter

我将属性详细信息存储在一个数据库表中,将属性图像存储在另一个数据库表中。删除属性后,我将从数据库中删除图像和属性本身。但我还需要从服务器中删除图像。我做的很麻烦..我的图像数据库看起来像这样

FILE_PATH | PROP_ID

并在文件路径中以这样的方式存储

/images/uploads/2016/01/propname/filename.jpg

但是完整路径/var/www/html/images/uploads/2016/01/vsehrdova-6s/vsehrdova-6s-1.jpg

function delete_single_property($id)
{
        $this->db->delete('properties', array('room_id' => $id));
        $this->db->delete('properties_images', array('PROP_ID' => $id));
}

2 个答案:

答案 0 :(得分:0)

$dir = '/var/www/html' . dirname($filenameStoredInDB);
if (is_dir($dir))
    rmdir($dir);

答案 1 :(得分:0)

您无法删除该文件夹,因为您没有将其存储在数据库中。我可以帮助你删除服务器中的图像文件..这应该工作:

function delete_single_property($id)
{
    $q = $this->db->select('FILE_PATH')->from('properties_images')->where('PROP_ID', $id)->get();
    $dbase_path = $q->result_array();
    $new = array();
    foreach ($dbase_path as $single) {
        $new[] = '/var/www/html' . $single['FILE_PATH'];
    }
    foreach ($new as $file) { // iterate files
        if (is_file($file))
            unlink($file); // delete file
    }
    $this->db->delete('properties', array('room_id' => $id));
    $this->db->delete('properties_images', array('PROP_ID' => $id));
}

它将遍历属性的所有FILE_PATH检查您存储在数据库FILE_PATH中的内容是否确实存在以及文件。并且unlink只删除文件