php - 如何使用codeigniter将数据上传到数据库
问题描述
我想使用 codeigniter 将图像上传到数据库。它保存到数据库,但图像没有发送到我设置的文件夹路径,只有 image_path 保存到数据库。你能告诉我该怎么做或我做错了什么吗?这是我的代码:
* 控制器 *
function saveEvent(){
$config = [
'upload_path' => './assets/img',
'allowed_types' => 'gif|png|jpg|jppeg'
];
$this->load->library('upload', $config);
$this->form_validation->set_error_delimiters();
$this->upload->do_upload();
// var_dump('asd'. $this->upload->do_upload());
// if($this->upload->do_upload()){
$datas = $this->input->post('eventimage');
$info = $this->upload->data();
$image_path = "./assets/img/".$info['raw_name'].$info['file_ext'];
$data['cal_events_image'] = $image_path;
$data['cal_events_name'] = $this->input->post('eventname');
unset($data['submit']);
$this->load->model('CalendarModel');
if($this->CalendarModel->eventinsertdata($data)){
echo "success";
}else{
echo " fail";
}
* 看法 *
<form action="<?php echo base_url('index.php/CalendarController/saveEvent');?>" enctype="multipart/form-data" method="post" accept-charset="utf-8">
<table class="table">
<tr>
<td>Event Type</td>
<td><input type="text" name="eventname"></td>
</tr>
<tr>
<td>Image</td>
<td><input type="file" name="eventimage"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" name="submitevent" value="Add Event" class="btn btn-success"></td>
</tr>
</table>
</form>
* 模型 *
function eventinsertdata($data){
return $this->db->insert('table', $data);
return $this->db->insert('dev_adkt_events_type', $data);
echo 'hahay';
}
提前谢谢你们。希望你能帮我解决这个问题。
解决方案
我已经解决了!这是我的答案,它有效!
控制器
function saveEvent(){
$config = array(
'upload_path' => './assets/img',
'allowed_types' => 'gif|png|jpg|jppeg'
);
get_instance()->load->library('upload', $this->config);
$this->load->library('upload', $config);
$this->upload->initialize($config);
$this->form_validation->set_error_delimiters();
if($this->upload->do_upload('eventimage')){
$data = $this->input->post('eventimage');
$info = $this->upload->data();
// var_dump($info);
$image_path = "/assets/img/".$info['raw_name'].$info['file_ext'];
$datas['cal_events_image'] = $image_path;
$datas['cal_events_name'] = $this->input->post('eventname');
unset($data['submit']);
$this->load->model('CalendarModel');
if($this->CalendarModel->eventinsertdata($datas)){
// echo "success";
redirect($_SERVER['HTTP_REFERER']);
}else{
echo $this->upload->display_errors();
}
}else{
// echo 'shit';
echo $this->upload->display_errors();
}
}
推荐阅读
- mongodb - 查询以加入 mongodb 中的两个嵌套集合
- machine-learning - 如何改善我的回归问题的准确性低?
- javascript - javascript,js图表循环问题
- android - livedata 中的函数观察者不起作用
- json - 在声明自定义 json 名称时初始化结构中的变量返回语法错误:意外文字
- flutter - 使用颤振登录 connectyCube 可能需要 5 到 10 秒
- ios - iOS14 中的 SwiftUI 键盘避免问题和 IgnoresSafeArea 修饰符问题
- jenkins - 詹金斯在 Windows 10 minikube 问题上
- flutter - Flutter 和 Android Studio:找不到 providerinstaller 的本地模块描述符类
- python - 将json文件中的两个字段添加到一个列表中,将两者都变成浮点数,其中一个字段变成负数