codeigniter
Image / File Uploader В CodeIgniter
Поиск…
замечания
Нет необходимости, чтобы вы использовали одни и те же имена для (Контроллер, Файл, Класс, Идентификатор) или что бы это ни было. Все то, что я использовал, предназначено для понимания потока кодирования и моих предположений. Это зависит от разработчика, который берет код и редактирует код / имя в соответствии с их желанием, а затем размещает код и преуспевает.
Один файл / загрузчик изображений
Теперь мы увидим, как код загрузки изображения / файла работает в собственном методе 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
для входного тега.
Ниже приведены два примера использования обязательного атрибута, но оба метода одинаковы.
- Первый метод:
<input type="file" name="photo" required="required" />
- Метод второй:
<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
с именем загруженного изображения. - И загруженный образ будет сохранен в каталоге, который мы создали в корневой папке или в любой другой папке, которую мы укажем.