图片上传到 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
同时检查您的数据库列类型以接受/将文件名保存为字符串
上面的代码似乎没有任何明显的错误,但需要检查的项目很少:
- 用户模型真的连接到数据库了吗?
https://codeigniter.com/userguide3/general/models.html#connecting-to-your-database
users
table 模式中真的有 user_image
字段吗?
session->userdata('id')
是否会在登录时更新为真实存在的用户 ID?
- 给定
id
的用户记录是否真的已经存在于数据库中? update()
没有插入新值。
https://codeigniter.com/userguide3/database/query_builder.html#updating-data
我的 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
同时检查您的数据库列类型以接受/将文件名保存为字符串
上面的代码似乎没有任何明显的错误,但需要检查的项目很少:
- 用户模型真的连接到数据库了吗? https://codeigniter.com/userguide3/general/models.html#connecting-to-your-database
users
table 模式中真的有user_image
字段吗?session->userdata('id')
是否会在登录时更新为真实存在的用户 ID?- 给定
id
的用户记录是否真的已经存在于数据库中?update()
没有插入新值。 https://codeigniter.com/userguide3/database/query_builder.html#updating-data