2015-04-01 107 views
0

我正尝试为想要更改照片的用户创建更新图像。当我点击照片上传提交时,没有上传照片,照片的列仍然没有更新。更新Codeigniter中的图片

这里是我的Contorller:

function foto($id='') 
    { 
     $data['data']  = $this->user_model->get_foto($id); 
     $data['form_action'] = site_url("user/update_foto/$id"); 
     $this->load->view('user/foto_form', $data); 
    } 

    function update_foto($id=''){ 
     $this->user_model->update_foto($id); 
    } 

这里是我的模型:

function get_foto($id=0){ 
     $id = $this->session->userdata('id'); 
     $sql = "SELECT id,foto FROM user WHERE id= '$id'"; 
     $query = $this->db->query($sql); 
     $data = $query->row_array(); 
     return $data; 
    } 

    function update_foto(){ 
     $config['upload_path'] = './upload/'; 
     $config['allowed_types'] = 'jpg|png|jpeg'; 
     $this->load->library('upload', $config); 
     if (!$this->upload->do_upload('foto')) 
     { 
      $id_user=$this->session->userdata('id'); 
      redirect ("user/foto/$id_user"); 
     } else { 
      $id_user=$this->session->userdata('id'); 
      $data=array(
      'foto'=>$this->input->post('foto') 
      ); 
      $this->db->where('id',$id_user); 
      $this->db->update('user',$data); 
      redirect("user"); 
     } 
    } 

这是我的观点上传表单:

<form role="form" action="<?php echo $form_action ?>" class="form-horizontal style-form" method="POST" enctype="multipart/form-data"> 
    <label >Upload Foto</label> 
    <input type="file" name="foto"/> 
    <button type="submit">Save</button> 
    </form> 

任何回答?非常感谢答案...

+0

'

+0

如果这是有效的解决方案,也可以通过添加name属性来解决:''。 – Tpojka 2015-04-02 00:03:10

回答

0

在您的控制器尝试从

site_url("user/update_foto/$id"); 

更换此

site_url("user/update_foto") ./. $id; 

或者你可以使用URI段是指用户指南。

site_url("user/update_foto") ./. $this->uri->segment(4); // unsure id check uri segment in url. 

您的路线可能需要改变

$route['user/update_foto/(:any)'] = "controllername/foto/$1";

所有方式确保控制器具有指数()

0

在你的模型,这是错误的。

$data=array(
    'foto'=>$this->input->post('foto') 
); 

$this->input->post('foto')没有得到您的文件名。
您可以尝试与此

else { 
     $id_user=$this->session->userdata('id'); 
     $info=$this->upload->data(); 
     $data=array(
     'foto'=>$info['file_name'] 
     ); 
     $this->db->where('id',$id_user); 
     $this->db->update('user',$data); 
     redirect("user"); 
    } 
更好

使用这一行你上传路径

$config['upload_path'] = FCPATH.'upload/'; 
+0

仍然无法正常工作,..文件没有上传,仍然没有存储到数据库.. – 2015-04-04 13:07:22

0

$ FILE_NAME = “”;

if ($_FILES['foto']['error']!= 4) { 

     $fileParts = pathinfo($_FILES['foto']['name']); 
     $file_name = time() . '.' . $fileParts['extension']; 
     $config['upload_path'] = './uploads/'; 
     $config['allowed_types'] = 'gif|jpg|png|jpeg'; 

     $config['file_name'] = $file_name; 
     $this->load->library('upload', $config); 
     $this->upload->initialize($config); 
     $this->upload->do_upload('foto'); 
    }