2011-01-07 65 views
1

這將是朦朧的......我已經建立了一個crud系統來管理「提供」數據庫與創建窗體和更新窗體上的上傳字段。php codeigniter上傳類

當用戶進入編輯我有圖像顯示,但如果他們想上傳一個新的表單字段是否有更新的形式,當他們提交更新

棘手的部分上傳新的圖片

如果他們不想$ this-> upload-> do_upload()會拋出一個錯誤,說沒有指定圖像

爲了解決這個問題,我添加了if(!empty($ _ POST ['userfile']) )僅在指定圖像時才使用上傳類,但當表單提交時,它似乎總是空的,直到它進入上傳類函數調用爲止。繼承人一些代碼

$userfile = $this->input->post('userfile');//i have tried $_POST as well 


if(! empty($userfile)) 
      { 
       if (! $this->upload->do_upload()) 
       { 
        $error = array('error' => $this->upload->display_errors()); 
        echo $this->upload->display_errors(); 

        $data['offer'] = $this->moffers->get_offer($this->input->post('id')); 
        $this->load->view('admin/admin_header'); 
        $this->load->view('admin/edit',$data); 
        $this->load->view('admin/admin_footer'); 
       } 

關於解決什麼問題的任何想法?上傳現場工作正常,當我取出空()的條件,但不會工作,如果用戶犯規指定要上傳的文件,他們可能不總是想做

<tr> 
     <td>Upload a new image</td> 
     <td><input type="file" name="userfile" size="40" /></td> 
    </tr> 

回答

2

做這樣的:

if(isset($_FILES['userfile']['tmp_name']) && !empty($_FILES['userfile']['tmp_name'])): 
     if (! $this->upload->do_upload()) 
      { 
       $error = array('error' => $this->upload->display_errors()); 
       echo $this->upload->display_errors(); 

       $data['offer'] = $this->moffers->get_offer($this->input->post('id')); 
       $this->load->view('admin/admin_header'); 
       $this->load->view('admin/edit',$data); 
       $this->load->view('admin/admin_footer'); 
      } 
    endif; 

這就是我在我的codeigniter項目中做到的。

我還創建了一個笨上傳幫手,可總是有用的) - >http://blog.cmstutorials.org/freebees/codeigniter-free-upload-helper

+0

perfec,歡呼聲,約TMP名 – 2011-01-07 13:28:28

0

試試這個:

if(! empty($userfile)) 
      { 
       if (! $this->upload->do_upload()) 
       { 
        $error = array('error' => $this->upload->display_errors()); 
        echo $this->upload->display_errors(); 
       } 
} 


        $data['offer'] = $this->moffers->get_offer($this->input->post('id')); 
        $this->load->view('admin/admin_header'); 
        $this->load->view('admin/edit',$data); 
        $this->load->view('admin/admin_footer');