• 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Image Uploader Modification

#1
[eluser]jzmwebdevelopement[/eluser]
At this present point in time I have some code that does the following:

I can edit and I can add a house sale that uploads/edits one image for this particular house and then during the process a thumbnail is created and then the original file name and the thumbnail name is saved to database fields called **imagename** and **imagethumb**.

(*Note: Add and Edit a separate pages*)

What my idea is:

I will create another page that has the name of the houses fed into a dropdown menu so when one is selected and images are selected they will upload.

What my issue is:

1. I am getting myself confused as to what would be the best way to modify my database to enable this change.

2. How would I modify my php code to handle more then one file (How do I handle multiple images and then pass the image for uploading resizing etc ) What is the best option? - within my given idea?

3. Could I have an example of what I should do so I can work off this.

I have included the model and controller (As an **Example**) of my Add Sale but I will also need to edit a image for the respective sale.

Code:
**Model:**

    class Sales_model extends CI_Model
    {
        
        function __construct() {
                parent::__construct();
        }
        
        function getSalesPage($id = NULL) {
            
            $query = $this->db->get_where('sales', array('id' => $id), 1);
            if($query->num_rows() == 1) return $query->row();
        
        } # End getSalesPage
        
        function getSalesPages($id = NULL) { // $id does nothing
            $query = $this->db->get('sales');
            if($query->num_rows() > 0) return $query->result();
        
        } # End getSalesPages
        
        function getSalesContent($id = NULL) {
            $this->db->where('id', $id);
            $query = $this->db->get('sales', 1);
            
            if($query->num_rows() > 0) {
                $row = $query->result_array();
                return $row;
            }else{
                return FALSE;
            } # End IF
        } # End getSalesContent
    
            
        function addSale($data = NULL) {
            $this->db->insert('sales', $data);
            return TRUE;
        } # End Add Sale    
        
        function updateSale($id, $content) { //Content id from being passed
    
            $this->db->where('id', $id);  // selecting the $id to update
            $update = $this->db->get('sales'); // What does $update = well it = get the db sales
            $row = $update->row_array(); // what does $row mean = well it gets the row as an array
            
            if($update->num_rows() > 0) {
                
                if(isset($content['imagename']) && isset($content['thumbname'])) {
                
                #lets delete the image
                unlink("/includes/uploads/gallery/".$row['imagename']);
                #lets delete the thumb.
                unlink("/includes/uploads/gallery/thumbs/".$row['thumbname']);
            }
                    $this->db->where('id', $id);
                    if($this->db->update('sales', $content))
                    {
    
                        return TRUE;
                    }
                    else
                    {
                        return FALSE;
                    }
                } # End IF
        } # End Update
        
        function deleteSale($id){
            
            $this->db->where('id', $id);
            $q = $this->db->get('sales');
            $row = $q->row_array();
            
            if ($q->num_rows() > 0){
                //delete from the database
                $this->db->where('id', $id);
                $this->db->delete('sales');
    
                //lets delete the image
                unlink("includes/uploads/sales/".$row['imagename']);
                //lets delete the thumb.
                unlink("includes/uploads/sales/thumbs/".$row['thumbname']);
            }//END if num_rows
        }//END function deleteSale($id)
    } # End Model

#2
[eluser]jzmwebdevelopement[/eluser]
Controller:
Code:
if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Addsale extends CI_Controller
{
    function __construct()
    {
        parent::__construct();
    }

    function index()
    {
        if(!$this->session->userdata('logged_in'))redirect('admin/home');

            # Main Data
            
            $data['title'] = 'Add Sale: ';
            
            //Set Validation
            
            $this->form_validation->set_rules('name', 'Name', 'trim|required|xss_clean');
            $this->form_validation->set_rules('location', 'Location', 'trim|required|xss_clean');
            $this->form_validation->set_rules('bedrooms', 'Bedrooms', 'trim|numeric|required|xss_clean');
            $this->form_validation->set_rules('bathrooms', 'Bathrooms', 'trim|numeric|required|xss_clean');
            $this->form_validation->set_rules('condition', 'Condition', 'trim|required|xss_clean');
            $this->form_validation->set_rules('description', 'Description', 'trim|required|xss_clean');
            $this->form_validation->set_rules('price', 'Price', 'trim|required|xss_clean');

            if($this->form_validation->run()) {
            //Set File Settings
            $config['upload_path'] = 'includes/uploads/sales/';
            $config['allowed_types'] = 'jpg|png';
            $config['remove_spaces'] = TRUE;
            $config['overwrite'] = TRUE;
            $config['max_size'] = '1024';
            $config['max_width'] = '1024';
            $config['max_height'] = '768';

            $this->load->library('upload', $config);
            
            if(!$this->upload->do_upload()) {
                
                $data['message'] = array('imageError' => $this->upload->display_errors());
            } // Upload error end
            else{
                    $data = array('upload_data' => $this->upload->data());
                    $data['success'] = TRUE;
                    $config['image_library'] = 'GD2';
                    $config['source_image'] = $this->upload->upload_path.$this->upload->file_name;
                    $config['new_image'] = 'includes/uploads/sales/thumbs/';
                    $config['create_thumb'] = 'TRUE';
                    $config['thumb_marker'] ='_thumb';
                    $config['maintain_ratio'] = 'FALSE';
                    $config['width'] = '150';
                    $config['height'] = '150';

                    $this->load->library('image_lib', $config);
                    $this->image_lib->resize();
                
                
                $file_info = $this->upload->data();    
                    
                $this->db->escape($content);
                
                $content = array(  
                    'name' => $this->input->post('name', TRUE),
                    'location' => $this->input->post('location', TRUE),
                    'bedrooms' => $this->input->post('bedrooms', TRUE),
                    'bathrooms' => $this->input->post('bathrooms', TRUE),
                    'condition' => $this->input->post('condition', TRUE),
                    'description' => $this->input->post('description', TRUE),
                    'price' => $this->input->post('price', TRUE),
                    'imagename' =>$file_info['file_name'],
                     'thumbname' =>$file_info['raw_name'].'_thumb'.$file_info['file_ext']
                );            
            
                $this->sales_model->addSale($content);
                }#end else
                } # End Form Validation      
                $data['content'] = $this->load->view('admin/addsale', $data, TRUE);
                $data['sales_pages'] = $this->sales_model->getSalesPages();
                $data['cms_pages'] = $this->navigation_model->getCMSPages();
                $this->load->view('admintemplate', $data);
                        
            } # End Index Function
        } # End Controller
[/b]


Digg   Delicious   Reddit   Facebook   Twitter   StumbleUpon  


  Theme © 2014 iAndrew  
Powered By MyBB, © 2002-2019 MyBB Group.