Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Codeigniter 3.0.1上传数据库中的图像_Php_Mysql_Codeigniter - Fatal编程技术网

Php 使用Codeigniter 3.0.1上传数据库中的图像

Php 使用Codeigniter 3.0.1上传数据库中的图像,php,mysql,codeigniter,Php,Mysql,Codeigniter,我已经阅读了许多表格/答案,但在CI 3.0+方面对我帮助不大。正在尝试将图像路径上载到mysql数据库。似乎我的更新查询不起作用(在运行查询之前,图像列没有任何内容)。这是我的控制器,它正在处理上传内容: 我是从CI文档upload.php中获取的 <?php class Upload extends CI_Controller { public function __construct() { parent::__construct();

我已经阅读了许多表格/答案,但在CI 3.0+方面对我帮助不大。正在尝试将图像路径上载到mysql数据库。似乎我的更新查询不起作用(在运行查询之前,图像列没有任何内容)。这是我的控制器,它正在处理上传内容:

我是从CI文档upload.php中获取的

<?php

class Upload extends CI_Controller {

    public function __construct()
    {
            parent::__construct();
            // $this->load->helper(array('form', 'url'));
            $this->load->library('upload');
    }

    public function index()
    {
            $this->load->view('layouts/header');
            $this->load->view('home_page', array('error' => ' ' ));
            $this->load->view('layouts/footer');
    }

    public function do_upload()
    {

            $config['upload_path']          = './uploads/'; #$this->config->item('base_url').
            $config['allowed_types']        = 'gif|jpg|png|jpeg';
            // $config['max_size']             = 100;
            // $config['max_width']            = 1024;
            // $config['max_height']           = 768;

            // $this->load->library('upload', $config);

            $this->upload->initialize($config);

            if ( ! $this->upload->do_upload('userfile'))
            {
                    $error = array('error' => $this->upload->display_errors('<p>','</p>'));

                    $this->load->view('layouts/header');
                    $this->load->view('home_page', $error);
                    $this->load->view('layouts/footer');
            }

            else
            {

                    $this->load->model('model_edit');
                    $id = $this->session->userdata('id');
                    $data = array('upload_data' => $this->upload->data());
                    $image['img'] = $this->upload->data('file_name');


                    $this->model_edit->update_dp($id, $data);

                     #base_url().'upload/'.

                    $this->load->view('layouts/header');
                    // echo $id;
                    $this->load->view('home_page', $image);
                    $this->load->view('layouts/footer');
            }
    }
    }
    ?>
<?php

class Model_edit extends CI_Model
{

public function __construct()
{
    parent::__construct();
}
public function update_dp($id, $data) {

    $image_path = $this->upload->data('file_path');
    $sql = "UPDATE users SET images = '{$image_path}' WHERE id = '{$id}' LIMIT 1";
    $result = $this->db->query($sql);
    $row = $this->db->affected_rows();

    if ($row) {
        return $image_path;
    }
    else
    return FALSE;       
 } 
}
?>
<?php
$session_data = $this->session->userdata('logged_in');
$check = $this->session->userdata('remember_me');

?>
<div class="container">
<div class="row">
    <?php include('navbar.php'); ?>
</div>
<div class="row">
    <div class="col-xs-10">
        <?php

            if ($check) 
            {?>
            <div class="row">
              <div class="col-xs-4 col-xs-3">
              <?php if (isset($upload_data)) 
              {
                echo "Successfully Uploaded DP";
                echo $img;
                ?>
                <img src="<?php echo $img; ?>"/>
                <?php
              }?>               
                <?php if(isset($error))echo $error;  echo form_open_multipart('upload/do_upload');?>

                <input type="file" name="userfile"/>
                <br />
                <input type="submit" name="submit" value="upload" />

                </form>
              <hr>
              </div>
              <div class="col-xs-6 col-xs-5">

              </div>
            </div>
            <div class="row">  
              <div class="col-xs-4 col-xs-3">
              <label class="text-center"> User Information </label><a href="edit"><span class="glyphicon glyphicon-pencil pull-right"></span></a>
              <br><br>
                <label>Email: </label>
                <br>
                <?php echo $session_data['email'];?>
                <br><br>
                <label>Display Name: </label>
                <br>
                <?php echo $session_data['name'];?>
                <br><br>
                <label>Username: </label>
                <br>
                <?php echo $session_data['username'];?>
                <br><br>
                <a href="logout">Logout</a>
              </div>
             </div>

            <?php

            }
            else
            {
                // session_set_cookie_params(0);
                 include('browser_triger.php');
                 $session_data['username'];
                 $session_data['name'];
                 $session_data['email'];
            }
        ?>
    </div>
</div>

这是我的模型类model_edit.php

<?php

class Upload extends CI_Controller {

    public function __construct()
    {
            parent::__construct();
            // $this->load->helper(array('form', 'url'));
            $this->load->library('upload');
    }

    public function index()
    {
            $this->load->view('layouts/header');
            $this->load->view('home_page', array('error' => ' ' ));
            $this->load->view('layouts/footer');
    }

    public function do_upload()
    {

            $config['upload_path']          = './uploads/'; #$this->config->item('base_url').
            $config['allowed_types']        = 'gif|jpg|png|jpeg';
            // $config['max_size']             = 100;
            // $config['max_width']            = 1024;
            // $config['max_height']           = 768;

            // $this->load->library('upload', $config);

            $this->upload->initialize($config);

            if ( ! $this->upload->do_upload('userfile'))
            {
                    $error = array('error' => $this->upload->display_errors('<p>','</p>'));

                    $this->load->view('layouts/header');
                    $this->load->view('home_page', $error);
                    $this->load->view('layouts/footer');
            }

            else
            {

                    $this->load->model('model_edit');
                    $id = $this->session->userdata('id');
                    $data = array('upload_data' => $this->upload->data());
                    $image['img'] = $this->upload->data('file_name');


                    $this->model_edit->update_dp($id, $data);

                     #base_url().'upload/'.

                    $this->load->view('layouts/header');
                    // echo $id;
                    $this->load->view('home_page', $image);
                    $this->load->view('layouts/footer');
            }
    }
    }
    ?>
<?php

class Model_edit extends CI_Model
{

public function __construct()
{
    parent::__construct();
}
public function update_dp($id, $data) {

    $image_path = $this->upload->data('file_path');
    $sql = "UPDATE users SET images = '{$image_path}' WHERE id = '{$id}' LIMIT 1";
    $result = $this->db->query($sql);
    $row = $this->db->affected_rows();

    if ($row) {
        return $image_path;
    }
    else
    return FALSE;       
 } 
}
?>
<?php
$session_data = $this->session->userdata('logged_in');
$check = $this->session->userdata('remember_me');

?>
<div class="container">
<div class="row">
    <?php include('navbar.php'); ?>
</div>
<div class="row">
    <div class="col-xs-10">
        <?php

            if ($check) 
            {?>
            <div class="row">
              <div class="col-xs-4 col-xs-3">
              <?php if (isset($upload_data)) 
              {
                echo "Successfully Uploaded DP";
                echo $img;
                ?>
                <img src="<?php echo $img; ?>"/>
                <?php
              }?>               
                <?php if(isset($error))echo $error;  echo form_open_multipart('upload/do_upload');?>

                <input type="file" name="userfile"/>
                <br />
                <input type="submit" name="submit" value="upload" />

                </form>
              <hr>
              </div>
              <div class="col-xs-6 col-xs-5">

              </div>
            </div>
            <div class="row">  
              <div class="col-xs-4 col-xs-3">
              <label class="text-center"> User Information </label><a href="edit"><span class="glyphicon glyphicon-pencil pull-right"></span></a>
              <br><br>
                <label>Email: </label>
                <br>
                <?php echo $session_data['email'];?>
                <br><br>
                <label>Display Name: </label>
                <br>
                <?php echo $session_data['name'];?>
                <br><br>
                <label>Username: </label>
                <br>
                <?php echo $session_data['username'];?>
                <br><br>
                <a href="logout">Logout</a>
              </div>
             </div>

            <?php

            }
            else
            {
                // session_set_cookie_params(0);
                 include('browser_triger.php');
                 $session_data['username'];
                 $session_data['name'];
                 $session_data['email'];
            }
        ?>
    </div>
</div>

您需要在控制器中获取图像路径,并只将图像名称传递给模型文件

在控制器中

$image_path = $this->upload->data('file_name');
$this->model_edit->update_dp($id, $file_name);// pass image name
在型号中

function update_dp($id, $file_name) {
    $this->db->set("images", $file_name);
    $this->db->where("id", $id);
    $this->db->update("users");
    $row = $this->db->affected_rows();

    if ($row) {
        return $image_path;
    } else{
        return FALSE;
    }
}

你能上传图像吗?是的,图像将进入folderin CI文档,他们告诉我们,如果我们不想检索我们使用的图像名称:$this->upload->data('file_name');由于上传的内容现在包含一个数组,您需要在控制器上获取图像路径,并从更新querydone中删除限制,记录将进入数据库谢谢,现在它不会显示在视图上:p我需要处理这个问题。再次感谢:D