2014-09-02 5 views
0
$config['upload_path'] = './content/'; 
     $config['allowed_types'] = 'gif|jpg|png|jpeg'; 
     $this->load->library('MY_Upload'); 
     $this->upload->initialize($config); 
     $this->upload->initialize(array(
     "file_name"  => array("file_1.jpg", "file_2.jpg", "file_3.jpg"), 
     "upload_path" => "./content/" 
    )); 

     if($this->upload->do_multi_upload("userfile")){ 
      print_r($this->upload->get_multi_upload_data()); 
     } 

Я использовал этот код для нескольких загрузки, но не работает, Фатальная ошибка: Class «CI_Upload» не найден, ошибка этого типа.Фатальная ошибка: Class «CI_Upload» не найден

+0

вы не должны загрузить библиотеку ' MY_Upload' таким образом ..., предположим, что вы хотите расширить 'CI_Upload' из пользовательской загруженной библиотеки MY_Upload' .., вы должны загрузить этот способ' $ this-> load-> library ('upload'); '' CI' автоматический приоритет 'MY_Upload' – Girish

ответ

1

Расширение собственных библиотек

Если все, что вам нужно сделать, это добавить некоторые функциональные возможности к существующей библиотеке - возможно добавить функцию или два - то это излишество, чтобы заменить всю библиотеку с вашей версией. В этом случае лучше просто расширить класс. Расширение класса практически идентично его замене класса с парой исключений:

The class declaration must extend the parent class. 
Your new class name and filename must be prefixed with MY_ (this item is configurable. See below.). 

Например, чтобы расширить родной класс электронной почты, вы должны создать файл с именем приложения/библиотеки/MY_Email.php, и объявить свой класс с:

class MY_Upload extends CI_Upload { 

    } 

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

class MY_Upload extends CI_Upload { 

      public function __construct() 
      { 
       parent::__construct(); 
      } 
public function some_function() 
{ 

} 
     } 

Загрузка подкласса

Чтобы загрузить ваш подкласс, вы будете использовать стандартный синтаксис, который обычно используется. НЕ включайте свой префикс. Например, чтобы загрузить приведенный выше пример, который расширяет класс по электронной почте, вы будете использовать:

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

После загрузки вы будете использовать переменный класс, как обычно для класса вы расширяете. В случае класса электронной почты все вызовы будут использовать:

$this->upload->some_function(); 

Я думаю, вы понимаете Расширение собственных библиотек

Вы можете изменить свой код, как этот

$config['upload_path'] = './content/'; 
     $config['allowed_types'] = 'gif|jpg|png|jpeg'; 
/************* i am changing only loading class only *********************/ 
     $this->load->library('upload'); 

     $this->upload->initialize($config); 
     $this->upload->initialize(array(
     "file_name"  => array("file_1.jpg", "file_2.jpg", "file_3.jpg"), 
     "upload_path" => "./content/" 
    )); 

     if($this->upload->do_multi_upload("userfile")){ 
      print_r($this->upload->get_multi_upload_data()); 
     } 
Смежные вопросы