Я не могу загрузить файл в codeigniter - PullRequest
0 голосов
/ 23 февраля 2019

Я не могу загрузить файл в codeigniter.Код, который я использую:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Main extends CI_Controller {

    function __construct() {
    parent::__construct();
    $this->load->library('session');
    $this->load->library('upload');
    $this->load->library('form_validation');
    $this->load->helper(array('form', 'url'));
    $this->load->model('User_m');
    }
    public function form()
    {
        if($_POST){
            //print_r($_POST);exit;


                 if(!empty($_FILES['userfile']['name']))
                 {
                   $config['upload_path'] = "./uploads/";
                   $config['allowed_types'] = 'jpg|jpeg|png|gif';
                   $config['file_name'] = $_FILES['userfile']['name'];
                   //Load upload library and initialize configuration
                   //print_r($config);exit;
                   $this->load->library('upload',$config);
                   //$this->upload->initialize($config);

                   if($this->upload->do_upload('userfile')){
                       $uploadData = $this->upload->data();
                       $userfile = $uploadData['file_name'];
                       //echo $userfile;exit;
                   }
                   else
                   {
                       $userfile = '';
                   }
             }
             else
              {
                 $userfile = '';

              }
            $data['name']=$this->input->post('name');
            $data['email']=$this->input->post('email');
            $data['phone']=$this->input->post('phone');
            $data['userfile']=$userfile;
            $this->User_m->form_insert($data);
        }


        $this->load->view('form');
    }
}

Это код функции моего контроллера для обработки данных многоэлементной формы в codeigniter.Но файл не загружается.

Ответы [ 2 ]

0 голосов
/ 25 февраля 2019

Вы можете попробовать это

public function form()
    {
        if($_POST){    

                 if(!empty($_FILES['userfile']['name']))
                 {
                   $config['upload_path'] = './uploads/';
                   $config['allowed_types'] = 'jpg|jpeg|png|gif';
                   $config['file_name'] = $_FILES['userfile']['name'];
                  $this->upload->initialize($config);
                   $this->load->library('upload',$config); 
                   if($this->upload->do_upload('userfile')){                      
                       $userfile = $_FILES['userfile']['name'];

                   }
                   else
                   {
                       $userfile = '';
                   }
             }
             else
              {
                 $userfile = '';

              }
            $data['name']=$this->input->post('name');
            $data['email']=$this->input->post('email');
            $data['phone']=$this->input->post('phone');
            $data['userfile']=$userfile;
            $this->User_m->form_insert($data);
        }
0 голосов
/ 24 февраля 2019

так как вы дали код, я изменил код для его отслеживания. Ниже я прикрепил файл представления, а также файл контроллера:

1) Ниже приведен код файла представления. В этом я отправилФорма с указанием имени метода в атрибуте действия. Если вы отправляете форму через ajax, вы можете передать имя метода туда.

<div id="container">
<h1>Please Fill up the Registration Form.!</h1>
<div id="body">
  <!-- <?php echo $error;?> --> 
  <form method="post" action="<?php echo site_url() . '/Main/form' ?>" enctype="multipart/form-data"> Full name:<br> <input type="text" name="name"><br> Email:<br> <input type="text" name="email"><br> Phone:<br> <input type="text" name="phone"><br><br> Image:<br> <input type="file" name="userfile" /> <br /><br /> <input type="submit"><br> </form>
</div>
</div> 

2) Ниже приведен код контроллера.

 <?php

 class Main extends CI_Controller {

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

    public function index()
    {
           $this->load->view('form');
    }


    public function form()
{

    if($_POST){



             if(!empty($_FILES['userfile']['name']))
             {
               $config['upload_path'] = "./uploads/";
               $config['allowed_types'] = 'jpg|jpeg|png|gif';
               $config['file_name'] = $_FILES['userfile']['name'];
               //Load upload library and initialize configuration
               //print_r($config);exit;
               $this->load->library('upload',$config);
               //$this->upload->initialize($config);

               if($this->upload->do_upload('userfile')){
                   $uploadData = $this->upload->data();
                   $userfile = $uploadData['file_name'];
                   //echo $userfile;exit;
               }
               else
               {
                   $userfile = '';
               }
         }
         else
          {
             $userfile = '';

          }
        $data['name']=$this->input->post('name');
        $data['email']=$this->input->post('email');
        $data['phone']=$this->input->post('phone');
        $data['userfile']=$userfile;

        // Below $data getting all the form data
        print_r($data);

    }


    $this->load->view('form');
}

}

Надеюсь, это поможет вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...