如何仅将一张图像插入数据库 codeigniter?
How to insert only one image into database codeigniter?
大家好,我是 codeigniter 的新手,我遇到了将图像插入数据库的问题
我上传了 3 张图片。当我将图像 1、2 和 3 插入数据库时,没问题。当我将图像 1 插入数据库并且图像 2 和 3 为空时出现错误:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: img2
Filename: mbl-admin/Site_admin.php
Line Number: 153
Backtrace:
File: /home/wwwmyburgerlabco/public_html/mbl/application/controllers/mbl-admin/Site_admin.php
Line: 153
Function: _error_handler
File: /home/wwwmyburgerlabco/public_html/mbl/index.php
Line: 292
Function: require_once
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: img3
Filename: mbl-admin/Site_admin.php
Line Number: 154
Backtrace:
File: /home/wwwmyburgerlabco/public_html/mbl/application/controllers/mbl-admin/Site_admin.php
Line: 154
Function: _error_handler
File: /home/wwwmyburgerlabco/public_html/mbl/index.php
Line: 292
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /home/wwwmyburgerlabco/public_html/mbl/system/core/Exceptions.php:272)
Filename: helpers/url_helper.php
Line Number: 564
Backtrace:
File: /home/wwwmyburgerlabco/public_html/mbl/application/controllers/mbl-admin/Site_admin.php
Line: 157
Function: redirect
File: /home/wwwmyburgerlabco/public_html/mbl/index.php
Line: 292
Function: require_once
我该怎么做。这是我在控制器中的代码:
function burger_add(){
$config['upload_path'] = './images/burger/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 3500;
$config['max_width'] = 4800;
$config['max_height'] = 3200;
$this->load->library('upload', $config);
if($this->upload->do_upload('userfile2'))
{
$img2 = $this->upload->data();
}
if($this->upload->do_upload('userfile3'))
{
$img3 = $this->upload->data();
}
$this->load->library('form_validation');
$this->form_validation->set_rules('title','Title','required|trim');
$this->form_validation->set_rules('category','Category','required|trim');
if ( ! $this->upload->do_upload('userfile1') || ($this->form_validation->run() == false))
{
$error = array('error' => $this->upload->display_errors());
$this->load->view('admin_view/header_admin');
$this->load->view('admin_view/burger_add',$error);
$this->load->view('admin_view/footer_admin');
}
else{
$img1 = $this->upload->data();
$insert = array(
'category' => $this->input->post('category'),
'title' => $this->input->post('title'),
'description' => $this->input->post('description'),
'image' => $img1['file_name'],
'image2' => $img2['file_name'],
'image3' => $img3['file_name'],
);
$this->db->insert('product',$insert);
redirect('mbl-admin/Site_admin/burger_add_form');
}
}
我不熟悉 CI 但 do_upload 听起来不像是一种可用于检查上传项目是否存在的方法。
编辑:我稍微发现了 CI 文档。这确实是检查特定上传字段(或一般上传)是否存在的方法。
所以你所要做的就是检查特定字段是否存在(沿着 do_upload(fieldname) 方法)并在特定字段的 if-body 内执行上传任务,仅此而已。
很难在智能手机上手动定义该来源,但我认为您可以轻松地自己定义来源。
Try this code.single image upload in codeigniter 3.0.1
function burger_add(){
$config['upload_path'] = './images/burger/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 3500;
$config['max_width'] = 4800;
$config['max_height'] = 3200;
$config['remove_spaces'] = true;
$this->load->library('upload', $config);
if (!$this->upload->do_upload('userfile2'))
{
$error = ['error' => $this->upload->display_errors()];
$this->load->view('admin_view/burger_add', $error);
}
else
{
$uploaddata = $this->upload->data();
foreach ($uploaddata as $value)
{
$data = [
'name' => $value['file_name'],
'type' => $value['file_type'],
'category' => 'news'
];
$this->Image_model->image($data);
}
}
}
在您的函数中添加 error_reporting(0)
burger_add()
以消除通知错误。
像这样 -
function burger_add(){
error_reporting(0);
# here write your code
}
并且您必须在构造函数中打开输出缓冲
public function __construct()
{
ob_start();
}
添加 output buffering 后,您从未遇到过消息 "Warning: Cannot modify header information - headers already sent by (output)" .
注意:抑制错误或暂时禁用错误报告并不能解决问题,它只是隐藏了错误/警告消息。
大家好,我是 codeigniter 的新手,我遇到了将图像插入数据库的问题 我上传了 3 张图片。当我将图像 1、2 和 3 插入数据库时,没问题。当我将图像 1 插入数据库并且图像 2 和 3 为空时出现错误:
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: img2
Filename: mbl-admin/Site_admin.php
Line Number: 153
Backtrace:
File: /home/wwwmyburgerlabco/public_html/mbl/application/controllers/mbl-admin/Site_admin.php
Line: 153
Function: _error_handler
File: /home/wwwmyburgerlabco/public_html/mbl/index.php
Line: 292
Function: require_once
A PHP Error was encountered
Severity: Notice
Message: Undefined variable: img3
Filename: mbl-admin/Site_admin.php
Line Number: 154
Backtrace:
File: /home/wwwmyburgerlabco/public_html/mbl/application/controllers/mbl-admin/Site_admin.php
Line: 154
Function: _error_handler
File: /home/wwwmyburgerlabco/public_html/mbl/index.php
Line: 292
Function: require_once
A PHP Error was encountered
Severity: Warning
Message: Cannot modify header information - headers already sent by (output started at /home/wwwmyburgerlabco/public_html/mbl/system/core/Exceptions.php:272)
Filename: helpers/url_helper.php
Line Number: 564
Backtrace:
File: /home/wwwmyburgerlabco/public_html/mbl/application/controllers/mbl-admin/Site_admin.php
Line: 157
Function: redirect
File: /home/wwwmyburgerlabco/public_html/mbl/index.php
Line: 292
Function: require_once
我该怎么做。这是我在控制器中的代码:
function burger_add(){
$config['upload_path'] = './images/burger/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 3500;
$config['max_width'] = 4800;
$config['max_height'] = 3200;
$this->load->library('upload', $config);
if($this->upload->do_upload('userfile2'))
{
$img2 = $this->upload->data();
}
if($this->upload->do_upload('userfile3'))
{
$img3 = $this->upload->data();
}
$this->load->library('form_validation');
$this->form_validation->set_rules('title','Title','required|trim');
$this->form_validation->set_rules('category','Category','required|trim');
if ( ! $this->upload->do_upload('userfile1') || ($this->form_validation->run() == false))
{
$error = array('error' => $this->upload->display_errors());
$this->load->view('admin_view/header_admin');
$this->load->view('admin_view/burger_add',$error);
$this->load->view('admin_view/footer_admin');
}
else{
$img1 = $this->upload->data();
$insert = array(
'category' => $this->input->post('category'),
'title' => $this->input->post('title'),
'description' => $this->input->post('description'),
'image' => $img1['file_name'],
'image2' => $img2['file_name'],
'image3' => $img3['file_name'],
);
$this->db->insert('product',$insert);
redirect('mbl-admin/Site_admin/burger_add_form');
}
}
我不熟悉 CI 但 do_upload 听起来不像是一种可用于检查上传项目是否存在的方法。
编辑:我稍微发现了 CI 文档。这确实是检查特定上传字段(或一般上传)是否存在的方法。
所以你所要做的就是检查特定字段是否存在(沿着 do_upload(fieldname) 方法)并在特定字段的 if-body 内执行上传任务,仅此而已。
很难在智能手机上手动定义该来源,但我认为您可以轻松地自己定义来源。
Try this code.single image upload in codeigniter 3.0.1
function burger_add(){
$config['upload_path'] = './images/burger/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = 3500;
$config['max_width'] = 4800;
$config['max_height'] = 3200;
$config['remove_spaces'] = true;
$this->load->library('upload', $config);
if (!$this->upload->do_upload('userfile2'))
{
$error = ['error' => $this->upload->display_errors()];
$this->load->view('admin_view/burger_add', $error);
}
else
{
$uploaddata = $this->upload->data();
foreach ($uploaddata as $value)
{
$data = [
'name' => $value['file_name'],
'type' => $value['file_type'],
'category' => 'news'
];
$this->Image_model->image($data);
}
}
}
在您的函数中添加 error_reporting(0)
burger_add()
以消除通知错误。
像这样 -
function burger_add(){
error_reporting(0);
# here write your code
}
并且您必须在构造函数中打开输出缓冲
public function __construct()
{
ob_start();
}
添加 output buffering 后,您从未遇到过消息 "Warning: Cannot modify header information - headers already sent by (output)" .
注意:抑制错误或暂时禁用错误报告并不能解决问题,它只是隐藏了错误/警告消息。