我将属性详细信息存储在一个数据库表中,将属性图像存储在另一个数据库表中。删除属性后,我将从数据库中删除图像和属性本身。但我还需要从服务器中删除图像。我做的很麻烦..我的图像数据库看起来像这样
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));
}
答案 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
只删除文件