Welcome Guest, Not a member yet? Register   Sign In
Problem with Uploading two images, re-sizing them, and saving them to the database
#1

[eluser]RMinor[/eluser]
Hi, I have an issue with uploading two images, re-sizing them, and saving them to the database. When I submit the form I get an error stating that 'photo_one, 'thumb_one', 'photo_two', and 'thumb_two' are undefined indexes. It's like they aren't even being passed. Can anybody see what's going on with my code below?

Controller:
Code:
public function index()
{
  $this->load->model('Model_model');
  $data['page'] = $this->Global_model->pageInformation($this->_page);
  $data['testimonials'] = $this->Model_model->getTestimonials();
  $data['success'] = FALSE;
  $this->load->helper('form');
  $this->load->library('form_validation');
  $this->form_validation->set_error_delimiters('<div class="error">', '</div>');
  if ($this->input->post('submit')) {
   $this->form_validation->set_rules('name', 'Name', 'trim|required');
   $this->form_validation->set_rules('stage_name', 'Stage Name', 'trim');
   $this->form_validation->set_rules('email', 'Email Address', 'trim|required|valid_email');
   $this->form_validation->set_rules('birth_month', 'Birth Month', 'trim|required|integer|exact_length[2]');
   $this->form_validation->set_rules('birth_day', 'Birth Day', 'trim|required|integer|exact_length[2]');
   $this->form_validation->set_rules('birth_year', 'Birth Year', 'trim|required|integer|exact_length[4]');
   $this->form_validation->set_rules('photo_one', 'Photo', 'trim');
   $this->form_validation->set_rules('photo_two', '', 'trim');
   $this->form_validation->set_rules('age_check', 'Age Check', 'trim|required');
   $this->form_validation->set_rules('ip', 'IP Adress', 'trim|required|valid_ip');
   if($this->form_validation->run() == FALSE) {} else {
    if ($this->upload()) {
     $email = $this->input->post('email');
     $body = "<p></p>"
     $this->load->library('email');
     $this->email->from('', '');
     $this->email->to($email);
     $this->email->cc('');
     $this->email->subject('');
     $this->email->message($body);
     if ($this->email->send()) {
      $data['success'] = TRUE;
     }
    }
   }
  }
  $this->load->view('model_view', $data);
}

public function upload()
{
  // Load necessary model and libraries.
  $this->load->model('Model_model');
  $this->load->library('upload');
  $this->load->library('image_lib');
  $db_info = array();
  // Set configuration array for uploaded photo.
  $config['upload_path'] = 'models/';
  $config['allowed_types'] = 'gif|jpg|jpeg|png';
  $config['max_size'] = '2048';
  $config['max_width']  = '0';
  $config['max_height']  = '0';
  // Set configuration array for thumbnail.
  $config_thumb['image_library'] = 'GD2';
  $config_thumb['create_thumb'] = TRUE;
  $config_thumb['maintain_ratio'] = TRUE;
  $config_thumb['width'] = 150;
  $config_thumb['height'] = 150;
  // Upload first photo and create a thumbnail of it.
  if (!empty($_FILES['photo_one']['name'])) {
   if ($this->upload->do_upload('photo_one')) {
    $this->upload->initialize($config);
    $photo_info = $this->upload->data();
    $config_thumb['source_image'] = $photo_info['full_path'];
    $db_info['photo_one'] = $photo_info['file_name'];
    $this->image_lib->initialize($config_thumb);
    $this->image_lib->resize();
    $db_info['thumb_one'] = $photo_info['raw_name'] . '_thumb' . $photo_info['file_ext'];
    $this->image_lib->clear();
   } else {
    $data['upload_error'][] = $this->upload->display_errors();
   }
  }
  // Upload second photo and create a thumbnail of it.
  if (!empty($_FILES['photo_two']['name'])) {
   $this->upload->initialize($config);
            if ($this->upload->do_upload('photo_two')) {
    $photo_info = $this->upload->data();
    $config_thumb['source_image'] = $photo_info['full_path'];
    $db_info['photo_two'] = $photo_info['file_name'];
    $this->image_lib->initialize($config_thumb);
    $this->image_lib->resize();
    $db_info['thumb_two'] = $photo_info['raw_name'] . '_thumb' . $photo_info['file_ext'];
    $this->image_lib->clear();
   } else {
    $data['upload_error'][] = $this->upload->display_errors();
   }
  }
  $this->Model_model->submit($db_info);
}

Model:
Code:
public function submit($data)
{
  $result = $this->db->query("INSERT INTO model
   (model_name,
   model_stage_name,
   model_email,
   model_birth_month,
   model_birth_day,
   model_birth_year,
   model_photo_one,
   model_thumb_one,
   model_photo_two,
   model_thumb_two,
   model_age_check,
   model_ip)
  VALUES
   (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", array(
    $this->input->post('name'),
    $this->input->post('stage_name'),
    $this->input->post('email'),
    $this->input->post('birth_month'),
    $this->input->post('birth_day'),
    $this->input->post('birth_year'),
    $data['photo_one'],
    $data['thumb_one'],
    $data['photo_two'],
    $data['thumb_two'],
    $this->input->post('age_check'),
    $this->input->post('ip')));
  if ($result) {
   return TRUE;
  }
  return FALSE;
}


Messages In This Thread
Problem with Uploading two images, re-sizing them, and saving them to the database - by El Forum - 02-08-2012, 05:00 PM



Theme © iAndrew 2016 - Forum software by © MyBB