2012-02-02 28 views
0

我上傳與笨的圖像,並在方法,我做以下,

if(isset($_FILES['product_image']['name'])) { 
      //some setup needed 
      $config['upload_path'] = "./media/images/products"; 
      $config['allowed_types'] = "png|gif|jpg|jpeg"; 
      $config['max_width'] = 1490; 
      $config['max_height'] = 400; 
      //make sure the library is running with clean config 
      $this->upload->initialize($config); 
      //do the upload 
      if(!$this->upload->do_upload('product_image')){ 
       $this->data['image_error'] = $this->upload->display_errors(); 
       $this->template->build('/admin/products/create', $this->data); 
      } else { 
       $this->data['image_data'] = $this->upload->data(); 
       //die(print_r($this->data)); 
       $this->template->build('/admin/products/create', $this->data); 
      } 
     } 

所以基本上我檢查,看看是否有什麼在$ _FILES中,然後上傳,如果分配$this-data['image_data']一路上傳數據。然而,當我來處理數據,即保存的文件名在數據庫中,我無法訪問$this->data['image_data']下面是我怎麼想使用它,

if($this->input->post("submit_create") == "Save") { 
    die(print_r($this->data['image_data'])); 
} 

但我得到以下錯誤,

消息:未定義指數:IMAGE_DATA

這是爲什麼我雖然分配的事情$這使他們訪問不只是整個方法,但整個控制器?

+0

一個類中時,實例對$此變量應該確實允許同一個對象實例中的其他方法訪問這些變量。你可以發佈全班嗎? – 2012-02-02 15:58:30

+0

你可以在這裏看到它,http://codepad.org/Cpz3EUMV它擴展MY_Controller可以在這裏看到,http://codepad.org/qXffA8v0 – Udders 2012-02-02 16:04:33

+0

只是看代碼很快我猜'如果(! $這個 - > upload-> do_upload(「product_image」)){'正在評估,因此文件中的數據永遠不會被實例化,只是一種猜測 – 2012-02-02 16:07:45

回答

0

我想,當你在你的例子至此打印image_data

if($this->input->post("submit_create") == "Save") { 
    die(print_r($this->data['image_data'])); 
} 

你實際上應該使用$image_data代替:

if($this->input->post("submit_create") == "Save") { 
    die(print_r($image_data)); 
} 
+2

他不在視圖文件中 – 2012-02-02 16:55:47

+0

糟糕!也許是CodeIgniter實例沒有被構造'$ this-> CI =&get_instance();''if'語句正在運行的位置? – 2012-02-02 17:12:08

+0

它在控制器內(OP公佈了完整的代碼,我也錯過了這些鏈接);並且,btw,$ this-> data只是一個類屬性,它可以在任何類中工作(不僅僅是Ci超級對象) – 2012-02-02 17:53:04