Php 更新Codeigniter中的图片/图像
我正在尝试为想要更改照片的用户创建更新图像。当我单击照片上载上的提交时,没有照片上载,照片栏仍然没有更新 这是我的控制者:Php 更新Codeigniter中的图片/图像,php,codeigniter,file-upload,upload,Php,Codeigniter,File Upload,Upload,我正在尝试为想要更改照片的用户创建更新图像。当我单击照片上载上的提交时,没有照片上载,照片栏仍然没有更新 这是我的控制者: function foto($id='') { $data['data'] = $this->user_model->get_foto($id); $data['form_action'] = site_url("user/update_foto/$id"); $this->load-&
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>
请尝试更换控制器上的
从
到
或者您可以使用uri段参考用户指南
site_url("user/update_foto") ./. $this->uri->segment(4); // unsure id check uri segment in url.
您的路线可能需要更改
$route['user/update\u foto/(:any)]=“controllername/foto/$1”代码>
所有方法都要确保控制器在您的型号上有index(),这是错误的
$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/';
$file_name=“”
不会导致表单提交。尝试将其更改为,如果这是有效的解决方案,也可以通过添加name属性来解决:保存
。
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/';
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');
}