dsk95913 2018-01-31 09:51
浏览 33

图像已保存但未返回(无响应)

I'm trying to fetch data and an image from a database after saving them. The data and the image are saved correctly, but when I try to read them, an error occurs. I can't solve the problem.

My views are:

view1 is Upload_form.php:

<html>
    <head> 
     <title>Upload Form</title> 
    </head>
    <body> 
     <?php echo $error;?> 
     <?php echo form_open_multipart('upload/do_upload');?> 
     <form action = "" method = "">
       <input type = "text" name = "title" /> 
       <br /><br /> 
       <input type = "file" name = "userfile" size = "20" /> 
       <br /><br /> 
       <input type = "submit" value = "upload" name="file_name"/> 
     </form> 
   </body>
</html>

view2 is Upload_success.php:

<html>
  <head> 
     <title>Upload Form</title> 
  </head>
  <body>  
     <h3>Your file was successfully uploaded!</h3>  
     <?php foreach ($image as $item) { ?>
        <P> <?php echo $item['title']; ?> </P>
        <img src="<?php echo base_url().'uploads/'. $item['image']; ?>">
     <?php } ?>
     <ul> 
        <?php foreach ($upload_data as $item => $value) { ?> 
        <li><?php echo $item;?>: <?php echo $value;?></li> 
        <?php } ?>
     </ul>  
     <p><?php echo anchor('upload', 'Upload Another File!'); ?></p>  
  </body>
</html>

I think the error is in the else statement. Please check it out.

Controller's name is upload.php:

  <?php

     class Upload extends CI_Controller 
     {

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

        public function index() { 
           $this->load->view('upload_form', array('error' => ' ' )); 
        } 

        public function do_upload() 
        { 
           $config['upload_path']   = './uploads/'; 
           $config['allowed_types'] = 'gif|jpg|png'; 
           $config['max_size']      = 100; 
           $config['max_width']     = 1024; 
           $config['max_height']    = 768;  
           $this->load->library('upload', $config);

           if ( ! $this->upload->do_upload('userfile')) 
           {
              $error = array('error' => $this->upload->display_errors()); 
              $this->load->view('upload_form', $error); 
           }

           else 
           {  
              $this->m->insertdata();
              $data = array('upload_data' => $this->upload->data()); 
              $this->load->view('upload_success',  $data); 
           } 
        } 
     } 

Model's name is model.php:

<?php
    class model extends CI_Model
    {
        function __construct()
        {
            parent::__construct();
            $this->load->database();
        }
        public function insertdata()
        {

                $upload_data = $this->upload->data();
                $data = array(
                    'name' => $this->input->post('title'),
                    'image' => $upload_data['file_name'],
                );
                $this->db->insert('image', $data);
                $id= $this->db->insert_id();

                $this->db->select('*');
                $this->db->from('image');
                $this->db->where('id', $id);
                $d = $this->db->get();
                return $d->result();
        }
    }
  • 写回答

3条回答 默认 最新

  • dsxz84851 2018-01-31 12:02
    关注

    This is my way to upload and show image. Hope it will be help you far most. In Your Controller:

                if (count($_FILES) > 0) 
                {
                    // upload Profile Picture
                    $config['upload_path']   = './uploads/profile_pic/';
                    $config['allowed_types'] = 'jpg|jpeg|png|JPG|JPEG|PNG';
    
                    $this->load->library('upload',$config);
    
                    $this->upload->initialize($config);
    
                    $is_profile_pic = $this->upload->do_upload('profilePic');
    
                    if ($is_profile_pic) 
                    {
                        $ret    = $this->upload->data();
                        $pic    = $ret['file_name'];
                    }
                    else
                    {
                        $pic = "";
                    }
                }
    
                    $data = array(
                            'profile_pic'       => $pic 
                     );
    
                    $this->User_Model->insert_into_users($data);
    

    Get the name of the file from database table and pick this file from the uploads folder to show in your view like this:

      <img class="img-responsive avatar-view" src="<?php echo base_url() . 'uploads/profile_pic/'.$employee->profile_pic; ?>" alt="Avatar">
    

    It is much simple and perfectly working in my project. You are trying a bit harder.

    评论

报告相同问题?

悬赏问题

  • ¥15 求视频摘要youtube和ovp数据集
  • ¥15 怎么改成输入一个要删除的数后现实剩余的数再输入一个删除的数再现实剩余的数用yes表示继续no结束程序
  • ¥15 在启动roslaunch时出现如下问题
  • ¥15 汇编语言实现加减法计算器的功能
  • ¥20 关于多单片机模块化的一些问题
  • ¥30 seata使用出现报错,其他服务找不到seata
  • ¥35 引用csv数据文件(4列1800行),通过高斯-赛德尔法拟合曲线,在选取(每五十点取1点)数据,求该数据点的曲率中心。
  • ¥20 程序只发送0X01,串口助手显示不正确,配置看了没有问题115200-8-1-no,如何解决?
  • ¥15 Google speech command 数据集获取
  • ¥15 vue3+element-plus页面崩溃