How to delete uploaded image from directory folder in CodeIgniter

36,338

Solution 1

unlink(base_url("uploads/".$group_picture));

Should be

unlink("uploads/".$group_picture);

You need the path, not the url.

Solution 2

Use CI constant FCPATH as location of root directory, so in your case that should be:

unlink( FCPATH . "uploads/" . $group_picture );

Notice that FCPATH already has trailing slash.

Solution 3

To delete a file/picture you can use delete_files() function. First load the file helper and then pass the file path as a first parameter in the delete_files() function and true as the second.like-

delete_files($path, true);

Solution 4

USE FCPATH in you Delete function

unlink(FCPATH."uploads/".$image);
Share:
36,338
TableMan
Author by

TableMan

Updated on July 05, 2022

Comments

  • TableMan
    TableMan almost 2 years

    I want to delete the image not only in database, but in folder too.

    This is my database table:

    group_id
    group_name
    group_descrtion
    group_picture
    

    This is my controller :

        public function delete_group()
        {
                $group_id = $this->input->post('group_id');
                $group_picture = $this->input->post('group_picture');
    
                $this->group_model->delete_group($group_id, $group_picture);
                redirect('product_group');
        }
    

    this is my model :

            function delete_group($group_id, $group_picture)
            {
                    $this->db->where('group_id', $group_id);
    
                    unlink(base_url("uploads/".$group_picture));
    
                    $this->db->delete('product_group', array('group_id' => $group_id));
            }
    

    and this is my view :

     <?=form_open_multipart('product_group/delete_group');?>
    
       <input type="hidden" class="form-control" placeholder="Group ID" name="group_id">
       <input type="text" class="form-control" placeholder="Group ID" name="group_picture">
    
      <div class="modal-footer">
         <button data-dismiss="modal" class="btn btn-default" type="button">Cancel</button>
         <button class="btn btn-success" type="submit">Submit</button>
       </div>
     </form>
    

    I succeed in deleting the data in the database, but the image in the folder are not also be deleted.