如何使用Codeigniter更新图像

时间:2019-02-07 05:13:16

标签: php codeigniter

我想更新图像时遇到问题。 更新过程进行得很好,但是图像无法更新。
请帮忙。谢谢。

这里是View:

<?php echo form_open('update'); ?>
<input type="hidden" name="id" value="<?php echo $data->id; ?>">
<input type="hidden" id="old" name="old" value="<?php echo $data->image;?>">

<div class="form-group">
<label>Name</label>
<input type="text" class="form-control" name="name" value="<?php echo $data->name; ?>">
</div>

<div class="form-group">
    <label>Change Image</label>
    <input class="form-control" type="file" name="image">
</div>      
<button type="submit" class="btn btn-default">Submit</button>

这里是控制器:

public function Update(){ 
$id = $this->input->post('id');
$name = $this->input->post('name');

if($_FILES['image']['name']!=""){
    $config['upload_path']   = './image/';
    $config['allowed_types'] ='gif|jpg|png|jpeg|';
    $this->load->library('upload', $config); 

    if(!$this->upload->do_upload('image')){
        $error = array('error' => $this->upload->display_errors());
    }else{
        $upload_data=$this->upload->data();
        $image_name =$upload_data['file_name'];
    }
}else{
    $image_name=$this->input->post('old');
}
$data = array( 'name'   => $name, 'image'  => $image_name, );

$ this-> model_user-> update_user($ data,$ id); }

这里是模型:

public function update_user($data, $id)
{
    $this->db->where('id', $id);
    $this->db->update('tabel_user', $data);
    return TRUE;
}

2 个答案:

答案 0 :(得分:0)

您编写的代码没有任何错误。但是您使用了一些不需要的输入。 尝试调试您的代码。 在模型中 返回之前

public function update_user($data, $id)
{
    $this->db->where('id', $id);
    $this->db->update('tabel_user', $data);
    echo $this->db->last_query();
    echo "</br> id : ".$id;
    print_r($data); EXIT;
}

如果您得到查询打印。检查您错过了什么。如果你不 在控制器 在$error = array('error' => $this->upload->display_errors());行之后 把print_r($ error);退出;

也许您已经忘记提及您的观点了。

做这三件事希望您会发现问题所在。

答案 1 :(得分:0)

首先,检查列名是否与数组键值相同
试试这些,

public function update_user($data, $id)
{
    echo'<pre>';print_r($data);
    $this->db->where('id', $id);
    $flag = $this->db->update('tabel_user', $data);
    echo $flag;die;

}

$ flag会告诉您是对还是错