图片上传到 CodeIgniter 中的文件夹,但不在数据库中

Image uploaded to the folder in CodeIgniter, but not in database

我的 CodeIgniter 项目有问题。我上传的图片只添加到文件夹中,但没有添加到数据库中。数据库中的列名是“user_image”。

这是我的控制器:

         public function upload() {
            if(!$this->session->userdata('logged_in')) {
                redirect('users/login');
            }
            
            $data['title'] = "file Upload";
                $config['upload_path']          = './uploads/';
                $config['allowed_types']        = 'gif|jpg|png';
                $config['max_size']             = 500;
                $this->load->library('upload', $config);
                $data['error'] = "";
                if ( ! $this->upload->do_upload('userfile'))
                {
                        if(isset($_FILES['userfile'])){
                        $data['error'] = $this->upload->display_errors();
                        }
                        $this->load->view('templates/header');
                        $this->load->view('users/upload', $data);
                        $this->load->view('templates/footer');
                }
                else
                {
                        $user_id = $this->session->userdata('id');

                        $uploaddata = $this->upload->data();

                        $filename = $uploaddata['file_name'];

                        $userdata = array(
                            'user_image' => $filename
                        );

                        $this->user_model->update($user_id, $userdata);
                        $this->session->set_flashdata('message', "Upload Succesfully");
                        redirect('dashboard/index');
                } 
}

我的模特:

    public function update($user_id, $userdata) {
       $this->db->where('id', $user_id);
       $this->db->update('users', $userdata);
    
}

而我的观点:

<?php echo form_open_multipart('users/upload'); ?>
    <div class="row justify-content-md-center">
        <div class="col-md-4 col-md-offset-4">
            <h1 class="text-center"><?php echo $title; ?></h1>
            <div class="form-group">
                <input type="file" name="userfile" class="form-control" >
                <?php echo $error; ?>
            </div>
<br>
            
            <br>
            <div class="d-grid gap-2">
                <button type="submit" class="btn btn-primary btn-lg">Upload</button>
            </div>
        </div>
    </div>
    
<?php echo form_close(); ?>

非常感谢你们。我将不胜感激任何帮助。

您可以尝试从数组中返回单个项目。

$filename = $this->upload->data('file_name'); // i.e. it will return test.jpg

同时检查您的数据库列类型以接受/将文件名保存为字符串

上面的代码似乎没有任何明显的错误,但需要检查的项目很少: