Несколько изображений не загружаются, всегда получает первое изображение - PullRequest
0 голосов
/ 08 ноября 2018

Просмотр:

<div class="col-md-6">
        <div class="form-group">              
                <input type = "file" class="form-control"  name = "userfile" id="userfile"  size = "20" />
        </div>
 </div>
 <div class="col-md-6">          
        <div class="form-group">             
                <input type = "file" class="form-control"  name = "userfile1" id="userfile1"  size = "20" />
        </div>
 </div>

Контроллер:

 $this->do_upload_landscape($data['package']['pID'] ,$this->input->post('userfile'));
 $this->do_upload_thumb($data['package']['pID'] ,$this->input->post('userfile1'));

функция для загрузки первого изображения

public function do_upload_landscape($member_id,$imageland)
        {
            $data['package'] = $this->Package_model->get_package_for_edit($member_id);
            $new_name = $data['package']['pID'].$data['package']['packgeID'] ;
            $config['file_name'] = $new_name;
            $config['upload_path'] = './uploads/';
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size'] = '1000';
            $this->load->library('upload', $config);
            if ( ! $this->upload->do_upload())
            {
                $error = array('error' => $this->upload->display_errors());
                $data['_view'] = 'package/add';
                $this->load->view('admin/layouts/main',$data,$error);
            }
            else
            {
                $data = array('upload_data' => $this->upload->data($imageland));
                $file_data= $data['upload_data'];
                $params = array(
                    'files' => site_url().'uploads/'.$file_data['file_name']
                );
               $result= $this->Package_model->update_package($member_id,$params);
            }
        }

Функция для загрузки 2-го изображения

public function do_upload_thumb($member_id,$thumb)
        {   
            $data1['package'] = $this->Package_model->get_package_for_edit($member_id);
            $config['upload_path'] = './uploads/';
            $config['allowed_types'] = 'gif|jpg|png';
            $config['max_size'] = '1000';
            $this->load->library('upload', $config);
            if ( ! $this->upload->do_upload())
            {
                $error = array('error' => $this->upload->display_errors());
                $data1['_view'] = 'package/add';
                $this->load->view('admin/layouts/main',$data1,$error);
            }
            else
            {
                $data1 = array('upload_data' => $this->upload->data($thumb));
                $file_data= $data1['upload_data'];
                $params = array(

                    'files_thumb' => site_url().'uploads/'.$file_data['file_name']
                );
                $result= $this->Package_model->update_package($member_id,$params);

            }
        } 

Проблема: Оба раза я получаю одну и ту же картинку. Значение изображения со страницы просмотра подходит, но при обновлении оно всегда получает значение первого изображения. В db, если первое имя изображения 56R45, то второе имя изображения 56R451, что означает, что одно и то же изображение добавлено два раза. Спасибо

Ответы [ 2 ]

0 голосов
/ 19 ноября 2018

Вам необходимо указать имя файла в $this->upload->do_upload(). Вы должны передать имя элемента ввода. * например 1002 *

<input type = "file" class="form-control"  name = "userfile" id="userfile"  size = "20" />

тогда вы должны вызвать $this->upload->do_upload() с именем файла, подобным этому $this->upload->do_upload('userfile'). То же самое для второго элемента ввода файла.

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

0 голосов
/ 08 ноября 2018

Вы должны инициализировать загружаемый файл и добавить это

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

после

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

в обеих функциях, подобных этой

$this->load->library('upload', $config);
$this->upload->initialize($config);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...