2012-02-09 19 views
2

我試圖上傳兩張圖片,重新調整大小,然後將它們保存在我的數據庫中,但遇到了一些問題。下面我已經發布了我的控制器。當我print_r()我的$ db_info數組我得到的photo_one和thumb_one的值,但沒有photo_two或thumb_two。當我print_r()$ _FILES數組時,所有內容都應該是這樣。任何人都可以看到我失蹤的東西,阻止我的控制器處理第二個圖像?謝謝!使用CodeIgniter上傳兩張圖片,重新調整大小並保存到數據庫

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class Model extends CI_Controller { 

    protected $_page = 'model'; 

    public function __construct() { 
     parent::__construct(); 
    } 

    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('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'); 

     // Set configuration array for uploaded photo. 
     $config['upload_path'] = 'models/'; 
     $config['allowed_types'] = 'gif|jpg|jpeg|png'; 
     $config['max_size'] = '2048'; 

     // 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'])) { 
      $this->upload->initialize($config); 
      if ($this->upload->do_upload('photo_one')) { 
       $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']; 
      } 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']; 
      } else { 
       $data['upload_error'][] = $this->upload->display_errors(); 
      } 
     } 
     print_r($db_info); 
     // $this->Model_model->submit($db_info); 
    } 

}

+1

我是忽略初學者錯誤的受害者。我將我的方法命名爲上傳類的上傳圖片的方法。因此,當我打電話給班級時,事情變得混亂起來。獲得的教訓和解決的問題。 – WebDev84 2012-02-09 17:39:54

+0

作爲回答發佈並確認爲正確,因此看到未解答問題的人可以跳過此問題;-) – 2012-02-10 00:20:59

回答

1

我是初學者,俯瞰失誤的犧牲品。我將我的方法命名爲上傳類的上傳圖片的方法。因此,當我打電話給班級時,事情變得混亂起來。獲得的教訓和解決的問題。

相關問題