Загрузка нескольких изображений не сохраняется в базе данных и папке пути - PullRequest
0 голосов
/ 11 января 2019

Я делаю загрузку нескольких изображений и сохраняется в одном поле. Но у меня проблема с моим кодом, изображения не могут быть сохранены в базе данных и в папке пути. Может быть, вы можете помочь мне, пожалуйста

Это мой контроллер


    public function post() {
      if(empty($_FILES['file']['name'])) {
        $data = array(  'id_merk'                   => $this->input->post('id_merk'),
                        'createdAt'                 => $this->input->post('createdAt')
        );

        // var_dump($data);
        $this->m_barang->post( $data );
        $this->session->set_flashdata('success', 'success');
        redirect('admin/merk');
      } else {
        $count = count($_FILES['file']['size']);
        foreach($_FILES as $value){
          for($s=0; $s<=$count-1; $s++) {
            $_FILES['file']['name']     = $value['name'][$s];
            $_FILES['file']['type']     = $value['type'][$s];
            $_FILES['file']['tmp_name'] = $value['tmp_name'][$s];
            $_FILES['file']['error']    = $value['error'][$s];
            $_FILES['file']['size']     = $value['size'][$s];   
              // $config['file_name'] = 'pict_'.date('Y_m_d_H_i_s').'.jpg';
              $config['upload_path'] = './upload/be/barang';
              $config['allowed_types'] = 'gif|GIF|jpg|JPG|jpeg|JPEG|png|PNG';
              $config['max_size'] = '8000';
              $config['max_width']  = '1366';
              $config['max_height']  = '1024';
            $this->load->library('upload', $config);
            $this->upload->do_upload();

            $data = $this->upload->data();
            $name_array[] = $data['file_name'];
          }
        }
        $names = implode(', ', $name_array);

        $data = array(  'id_merk'                   => $this->input->post('id_merk'),
                        'photo_barang'              => $names
        );
        $this->m_barang->post( $data );
        $this->session->set_flashdata('success', 'gambar ada');
        redirect('admin/merk');
      }
    }

и это мой взгляд


    <input class="form-control" name="file[]" id="files" type="file" multiple="multiple">

Пожалуйста, не могли бы вы помочь мне, как исправить мою проблему с моим кодом?

1 Ответ

0 голосов
/ 11 января 2019

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

Второй , присвоить атрибуту имени от <input type="file"> до $this->upload->do_upload()

Третий , если путь загрузки внутри папки приложения, тогда используйте APPPATH.'upload/be/barang' или если вне папки приложения, используйте FCPATH.'upload/be/barang'

 $count = count($_FILES['file']['size']);
 for($s=0; $s<=$count-1; $s++) {
    $_FILES['file']['name']     = $_FILES['file']['name'][$s];
    $_FILES['file']['type']     = $_FILES['file']['type'][$s];
    $_FILES['file']['tmp_name'] = $_FILES['file']['tmp_name'][$s];
    $_FILES['file']['error']    = $_FILES['file']['error'][$s];
    $_FILES['file']['size']     = $_FILES['file']['size'][$s];   
    $config['upload_path'] = './upload/be/barang';
    $config['allowed_types'] = 'gif|GIF|jpg|JPG|jpeg|JPEG|png|PNG';
    $config['max_size'] = '8000';
    $config['max_width']  = '1366';
    $config['max_height']  = '1024';

    $this->load->library('upload', $config);
    if(!$this->upload->do_upload('file')){
        //image uploading error
    }else{
        $data = $this->upload->data();
        $name_array[] = $data['file_name'];
    }


 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...