我正在尝试为想要更改照片的用户创建更新图片。当我点击提交照片上传时,没有上传的照片,照片的列仍然没有更新。
这是我的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)
在您的控制器上尝试替换此
来自
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";
所有方法都确保控制器具有索引()
答案 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/';
答案 2 :(得分:0)
$ file_name =&#34;&#34 ;;
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');
}