2015-05-22 2 views
0

Я попытался загрузить 2 типа файлов, изображений и pdf в другом месте. Но я получаю следующую ошибку.Загрузка нескольких файлов в codeignitor

Fatal error: Cannot redeclare my_escapeshellarg() (previously declared in ...\system\libraries\Upload.php:1038).

Вот мой контроллер:

$config['upload_path'] = './uploads/category_imgs/'; 

$config['allowed_types'] = 'gif|jpg|png|jpeg|pdf'; 

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

if (! $this->upload->do_upload('userfile')){ 

    $imgname ='noimage.png'; 

    $image_thumb ='noimage_thumb.png'; 

} else { 

    $data = $this->upload->data(); 

    $imgname = $data['file_name']; 

    $path_parts = pathinfo($imgname); 

    //$image_path = $path_parts['filename'].'._.'.date("Y-m-d h:i:s").'.'.$path_parts['extension']; 

} 

$filepath = ''; 

$config['allowed_types'] = 'gif|jpg|png|jpeg|pdf'; 

$config['upload_path'] = './uploads/category_brochure/'; 

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

if (!$this->upload->do_upload('brochure')) { 

    $data['uploaderror'] = array('error' =>  $this->upload->display_errors()); 

} else { 

    $arrUploadFileDetails = array('upload_data' => $this->upload->data()); 

    $filepath = $arrUploadFileDetails['upload_data']['file_name']; 

    $filExtension = $arrUploadFileDetails['upload_data']['file_ext']; 
} 

Может кто-нибудь указать на мою ошибку

+2

Сообщение об ошибке говорит, что ваш problem.You включен этот 'my_escapeshellarg' функцию дважды –

+0

проверки этого http://stackoverflow.com/questions/26841344/multiple-file-upload-in-codeigniter –

ответ

0

Вы получили следующую строку там дважды:

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

Это тогда пытаясь загрузить библиотеку дважды, и вызвав проблему. Если вам необходимо изменить конфигурации для загрузки, то вы должны использовать:

$this->upload->initialize($config); 

при установке конфигурации для второй загрузки.

+0

я удалил вторую библиотеку $ this-> load-> и инициализировали $ config. Но все же отображается одна и та же ошибка. – tyro

0

Если у вас есть два

<input type="file" name="userfile" multiple="multiple">

И

<input type="file" name="brochure" multiple="multiple">

На той же странице просмотра

Вы можете использовать это сделать функцию загрузки ниже я использую этот код с обратным вызовом проверки правильности формы codeigniter для mul загрузка нескольких файлов на одной странице.

public function do_upload() { 

    foreach ($_FILES as $field_name => $value) { 

     if ($value['name'] != '') { 

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

      $this->upload->initialize($this->do_upload_options()); 

      if (!$this->upload->do_upload($field_name)) { 

       $this->form_validation->set_message('do_upload', $this->upload->display_errors()); 

       return FALSE; 

      } else { 

       return TRUE; 
      } 

     } 
    } 

} 

public function do_upload_options() { 
    $config = array(); 

    $config['upload_path'] = FCPATH . 'uploads/'; 
    $config['allowed_types'] = 'gif|png|jpg'; 
    $config['max_size'] = '30000'; 
    $config['overwrite'] = TRUE; 
    $config['max_width'] = '0'; 
    $config['max_height'] = '0'; 

    return $config; 
}