2014-07-24 179 views
0

我試圖在圖像中添加歌手信息。該信息可以成功添加,但沒有圖像,但如果我嘗試插入數據與圖像,錯誤發生在「您沒有選擇要上傳的文件」消息。 我的控制器功能是這樣的......您沒有選擇要上傳的文件,Codeigniter中的文件上傳錯誤

public function add_edit_singer($id = '') 
    { 
    if($this->input->post('save_singer_info')){ 

     $post=$this->input->post(); 
     $add=array(
     'name'=>$post['sname'], 
     'bio'=>$post['bio'] 
     ); 

     $img1=$_FILES['photo']['name']; 
     if($img1){ 
     $config['upload_path'] = 'images/singer/'; 
     $config['allowed_types'] = 'gif|jpg|png|jpeg'; 

     $this->load->library('upload', $config); 

     if (!$this->upload->do_upload()) 
     { 
      $error = $this->upload->display_errors(); 
      $this->session->set_flashdata('info',$error); 
      redirect('admin/singer_manager'); 
     } 
     $data = array('upload_data' => $this->upload->data()); 
     $image = $data['upload_data']['file_name']; 
     $add['image']=$image; 

     } 
     else{ 
      $add['image']='no_image.jpg'; 
     } 

     $table='tbl_singer'; 
     if($this->singer_manager->add($add,$table)){ 
     $this->session->set_flashdata('info',"Artist/Band Information Added Successfully."); 
     redirect('admin/singer_manager'); 
     } 
     else{ 
      redirect('admin/singer_manager'); 
     } 

    } 
    else{ 
    $data['main_content']='admin/singer/add_edit_singer_view'; 
    if($id != '') 
      $data['editdata'] = $this->common_model->get_where('tbl_singer', array('id' => $id)); 
    $this->load->view('admin/include/template_view',$data); 
    } 

}

我的模型功能...

function add($data,$table){ 
    $name = $data['name']; 
    $res = $this->db->insert($table,$data); 
    if($res) 
    { 
     return true; 
    } 
    else 
    { 
     return false; 
    } 
} 

,我的表是...

<form role="form" enctype="multipart/form-data" action="<?php echo base_url('admin/singer_manager/add_edit_singer/' . $id); ?>" 
          method="post" 
          id="user_form"> 
         <table class="table table-hover"> 
          <tr> 
           <td>Singer Name</td> 
           <td> 
           <input type="text" class="form-control required" name="sname" 
           value="<?php if (isset($name)) { 
            echo $name; 
           } ?>"/> 
           </td> 
          </tr> 

          <tr> 
           <td>Bio</td> 
           <td> 
           <textarea class="form-control required" name="bio"> 
            <?php if (isset($bio)) { 
              echo $bio; 
             } ?> 
           </textarea> 
           </td> 
          </tr> 

          <tr> 
           <td>Image</td> 
           <td> 
           <?php if (isset($image)) {?> 
           <div class="row"> 
            <div class="col-xs-6 col-md-4"> 
            <a href="<?php echo base_url().'images/singer/'.$image;?>" class="thumbnail"> 
             <img src="<?php echo base_url().'images/singer/'.$image;?>" width="120" height="140" id="img_prev" /> 
            </a> 
            </div> 
           </div> 
           <?php 
           } ?> 

           <input type="file" name="photo" size="20" /> 
           </td> 
          </tr> 

          <tr> 
           <td colspan="2"> 
           <?php if (isset($id)) { ?><input type="hidden" name="id" value="<?php echo $id; ?>" /><?php } ?> 
           <input type="submit" class="btn btn-success" id="btn_save" name="save_singer_info"value="Save"/> 
           <input type="reset" class="btn btn-info" id="reset"/> 
           <input type="button" class="btn btn-danger" value="Cancel"onclick="history.go(-1)"/> 
           </td> 
          </tr> 

         </table> 
        </form> 

回答

0

變化

$this->upload->do_upload() 

$this->upload->do_upload('photo') 

可能是它解決問題

相關問題