如何在codeIgniter Framework中删除记录后从图像目录中删除图像?

时间:2014-12-16 09:50:15

标签: javascript php codeigniter image-uploading

我想从tbl_category中删除一个或多个产品类别。

  • 这些是category_id,category_name,......,category_image 数据库领域。

  • 我的问题是,当我删除项目时,它会完全删除 从数据库,但这个图像仍然留在目录

    i,e base_url。' ./ images / category_images /'。

    我该怎么办?需要帮助。

这是控制器的代码:

      public function manage_product_category()
    {
        $data=array();
        $data['all_product_category']=  $this->ehome_model-  >select_all_product_category();
        $data['admin_maincontent']=$this->load->view('admin/view_product_category',$data,true);
        $this->load->view('admin/admin_master',$data);   
    }
    public function delete_product_category($category_id)
    {
        $this->super_a_model->delete_product_category_by_category_id($category_id);
        redirect('super_admin/manage_product_category');
    }

此模型的代码:

     public function delete_product_category_by_category_id($category_id)
    {
        $this->db->where('category_id',$category_id);
        $this->db->delete('tbl_category');
    }

4 个答案:

答案 0 :(得分:0)

您需要使用unlink php方法:http://php.net/manual/it/function.unlink.php

$path = base_url.'./images/category_images/'.$file_name;
unlink($path);

确保设置正确的$file_name,如果您没有,只需对您的数据库运行查询,以获取文件名 之前删除该行。

答案 1 :(得分:0)

检查此链接 click here

$this->load->helper("file");
delete_files($path);

答案 2 :(得分:0)

首先,你必须有一个img_url字段或任何根据你的表中的要求。然后在第一步你需要从你的表中获取img_url,然后从这样的目录中删除它,

//write this function in your_controller
function delete($your_id)
    {
        $img_url = $this->your_model->get_image_url($your_id);//this will get the img_url from your_ model 
        unlink($img_url);   //this will delete the image from your directory

        $this->your_model->delete_image_record($your_id); //this will delete the record from the table

    }
//write the following functions in your_model
function get_image_url($your_id)
    {
        $this->db->select('your_img_url');
        $this->db->from('your_table');
        $this->db->where('your_id',(int)$your_id);
        $query = $this->db->get();
        if($query->num_rows() == 1) return $query->row()->your_img_url;
        else return NULL;

    }
function delete_image_record($your_id)
    {
        $this->db->where("$your_id",(int)$your_id);
        $this->db->delete('your_table');
    }

答案 3 :(得分:0)

在您的控制器中放置此代码。您需要从表中获取将要删除的图像路径。

$path_url = $this->your_model->get_path_url($your_id); 
if($path_url != NULL) 
{
    unlink($path_url ); //this will delete the image first.
    $this->your_model->delete_image_record($your_id);

}

然后保留你的模型,因为它只是写了一个额外的函数。下面的函数将检索图像路径。

function get_path_url($your_id)
{
  $this->db->select('path_url');
  $this->db->from('your_table');
  $this->db->where('table_id',$your_id);
  $query = $this->db->get();
  if($query->num_rows() == 1) return $query->row()->path_url;
  else return NULL;
}