CodeIgniter не загружает загружаемую библиотеку

У меня проблема с загрузкой библиотеки CodeIgniter,

Я уже создал три (3) веб-сайта с CodeIgniter, поэтому я считаю себя знакомым с этой платформой.

Проблема только с загрузкой lib. Я пробовал с несколькими функциями, и это все еще не работает.

Я даже пытался с пример CodeIgniter

В гугле я не могу найти ответы, у кого-нибудь есть идея, что это может быть?

class Admin extends CI_Controller {

public function __construct(){
parent::__construct();
$this->load->library('session');
$this->load->library('v');
$this->load->model('admin_model');
}

public function upload_a_thing($set = null){
$this->load->helper(array('form', 'url'));
if(!$set){
$this->load->view('admin/upload_a_thing');
}else{
$this->load->library('Upload');
if (!$this->upload->do_upload('userfile')){
echo $this->upload->display_errors();
} else {

$file = $this->upload->data();
//          $product = $this->admin_model->get_products($id);
$newFilePath = $config['upload_path'].'try.jpg';
$file['file_name'] = str_replace(" ","_",$file['file_name']);
rename($config['upload_path'].$file['file_name'], $newFilePath);
}
}
}

Ошибка CodeIgniter

 Undefined property: Admin::$upload

Ошибка PHP

Fatal error: Call to a member function do_upload() on a non-object

Отредактировано для Spary

        $config['upload_path'] = './media/imgs/products/';
$this->load->library('upload',$config);
if (!$this->upload->do_upload('userfile')){
echo $this->upload->display_errors();
}

0

Решение

Если ваша форма выглядит так:

<input type="file" class="input" name="logo"  />

затем вызовите do_upload () следующим образом:

 do_upload('logo');

Если это выглядит так:

 <input type="file" class="input" name="userfile" />

тогда назовите это так:

 do_upload();
1

Другие решения

сделать что-то подобное

if (!$this->upload->do_upload('userfile')){
echo $this->upload->display_errors();
}
0

Ваш код…

$this->load->library('Upload');

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


Кроме того, если ваш $config массив отсутствует, вы не следуете коду примера в документации:

$config['upload_path'] = './uploads/';   // <- preferences
$this->load->library('upload', $config); // <- load library and set configuration

ИЛИ ЖЕ

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

$config['upload_path'] = './uploads/';  // <- preferences
$this->upload->initialize($config);     // <- set configuration

ИЛИ ЖЕ

// 'upload' library is "auto-loaded"    // <- load library

$config['upload_path'] = './uploads/';  // <- preferences
$this->upload->initialize($config);     // <- set configuration

Из списка предпочтений все они кажутся необязательными, за исключением upload_path

Значение по умолчанию: Никто

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

Я не уверен, как CodeIgniter мог знать, куда загрузить файл, когда нет upload_path потому что по умолчанию нет и весь ваш массив конфигурации отсутствует.

0