Поиск…


замечания

Нет необходимости, чтобы вы использовали одни и те же имена для (Контроллер, Файл, Класс, Идентификатор) или что бы это ни было. Все то, что я использовал, предназначено для понимания потока кодирования и моих предположений. Это зависит от разработчика, который берет код и редактирует код / ​​имя в соответствии с их желанием, а затем размещает код и преуспевает.

Один файл / загрузчик изображений

Теперь мы увидим, как код загрузки изображения / файла работает в собственном методе CI с помощью форм, предложенных способом CI.

Загрузка файла на PHP имеет два сценария. Ниже указывается следующее.

  • Single Image / File uploader - это может быть сохранено с помощью обычной переменной в атрибуте формы. (Например) <input type="file" name="image" />
  • Multi-image / File Uploader - это можно сохранить только с помощью переменной массива для имени в типе файла. (Например) <input type="file" name="image[]" /> .

Переменная массива , а именно name="profile[]" также может быть сохранено для single image пользователя, а также multi-image пользователя тоже.

Следовательно, код Single Image / File Uploader в формате Native CodeIgnitor выглядит следующим образом:

Просмотр части:

<?php
echo form_open_multipart('employee/addemployee', array('name' => 'addemployee', 'class'=>'form-horizontal'));
?>
<div class="form-group">
   <label class="control-label col-sm-4" for="pwd">Profile:</label>
   <div class="col-sm-8">
      <input type="file" class="" id="profile" name="userimage">
   </div>
</div>
<div class="form-group">
   <div class="col-sm-offset-2 col-sm-10">
        <input type="submit" class="btn btn-primary pull-right" name="save" value="Save Employee" /> 
   </div>
</div>
<?php
echo form_close();
?>

Следовательно, если мы представим форму, она будет

  • Employee - контроллер и поиск функции с именем addemployee
  • Если вам нужен необходимый атрибут для кода загрузчика файлов, вы можете добавить атрибут HTML5, который required для входного тега.

Ниже приведены два примера использования обязательного атрибута, но оба метода одинаковы.

  1. Первый метод: <input type="file" name="photo" required="required" />
  2. Метод второй: <input type="file" name="photo" required />

Следовательно, это некоторые из важных советов, которые должны соблюдаться в части представления изображения / загрузчика файлов.

Контроллер:

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

class Employee extends CI_Controller {

    function __construct() {
    parent::__construct();
    $this->load->model('employee_model');
    $this->load->helper('url'); //This will load up all the URL parameters from the helper class
    $this->load->helper('form'); //This will load up all the form attributes that are need by the form.
    }

    public function addemployee()
    {
        if($_FILES["userimage"]['name']=='')            
        {
            // Here you can directly redirect to the form page itself with the Error Message
        }
        else
        {
            $new_name = time().$_FILES["userimage"]['name']; //This line will be generating random name for images that are uploaded       
            $config['upload_path'] = FCPATH ."assets/fileupload/";
            $config['allowed_types'] = 'gif|jpg|png';
            $config['file_name'] = $new_name;
            $this->load->library('upload', $config); //Loads the Uploader Library
            $this->upload->initialize($config);        
            if ( ! $this->upload->do_upload('userimage'))  {}
            else
            { 
            $data = $this->upload->data(); //This will upload the `image/file` using native image upload 
            }
            $data_value = array(
            'profile'=>$new_name,
            ); //Passing data to model as the array() parameter    
            $this->employee_model->saveemployee($data_value); //save_employee is the function name in the Model            
        }    
    }
?>

Примечание. По умолчанию программа загрузки ожидает, что файл будет получен из поля формы с именем userfile , а form должна быть типа multipart .

  • Следовательно, он перейдет к employee_model с $data_value - и он сохранит данные под функцией, называемой saveemployee .
  • Если вы хотите установить собственное имя поля, просто передайте его значение do_upload()
  • Используя класс «Загрузка файлов», мы можем загружать файлы, и мы также можем ограничить тип и размер загружаемого файла.
  • display_errors() - do_upload() сообщения об ошибках, если метод do_upload() возвращает false. Метод не эхо автоматически, он возвращает данные, поэтому вы можете назначить его, но вам нужно

Условные обозначения:

Это обозначения, которые доступны в CI, и мы можем определить его в index.php как короткое определение, и мы можем использовать его во всем проекте.

EXT: The PHP file extension
FCPATH: Path to the front controller (this file) (root of CI)
SELF: The name of THIS file (index.php)
BASEPATH: Path to the system folder
APPPATH: The path to the "application" folder

Модельная часть:

public function saveemployee($data_value)
{
    $this->db->insert('employee',$data_value);
}
  • Он будет сохранять данные в таблице employee с именем загруженного изображения.
  • И загруженный образ будет сохранен в каталоге, который мы создали в корневой папке или в любой другой папке, которую мы укажем.


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow