Upload of codeigniter files

0

This is the view:

    <div class="row">
<?php echo form_open_multipart(base_url('profile/edit/'.$averias_detail['id'])); ?>
<div class="col-md-6">
  <div class="box">
    <div class="box-header with-border">
      <h3 class="box-title">DATOS DE LA AVERÍA</h3>
    </div>
    <!-- /.box-header -->
    <!-- form start -->
    <div class="box-body">
        <div class="form-group">
          <label for="nro_averia" class="control-label">Número de Avería</label>
          <input type="text" name="nro_averia" class="form-control" id="nro_averia" placeholder="" value="<?= $averias_detail['nro_averia']; ?>" readonly>
        </div>
        <div class="form-group">
          <label for="fecha" class="control-label">Fecha</label>
          <input type="text" name="fecha" class="form-control datepicker" id="fecha" value="<?= date('d-m-Y', strtotime(($averias_detail['fecha']))) ; ?>" placeholder="" readonly>
        </div>
        <div class="bootstrap-timepicker">
        <div class="form-group">
          <label for="hora" class="control-label">Hora</label>
          <input type="text" name="hora" class="form-control timepicker" id="hora" value="<?= $averias_detail['hora']; ?>" placeholder="" readonly>
        </div>
        </div>
        <div class="form-group">
          <label for="tel_contacto" class="control-label">Persona de Contacto</label>
          <input type="text" name="tel_contacto" class="form-control" id="tel_contacto" value="<?= $averias_detail['tel_contacto']; ?>" placeholder="" readonly>
        </div>
        <div class="form-group">
          <label for="lugar_averia" class="control-label">Lugar de la Avería</label><br>
            <label>
              <input type="radio" name="lugar_averia" value="Entrada" class="minimal" <?php if($averias_detail['lugar_averia'] == 'Entrada'){echo 'checked';} else{echo '';} ?>>
              Entrada
            </label>
            <label>
              <input type="radio" name="lugar_averia" value="Salida" class="minimal" <?php if($averias_detail['lugar_averia'] == 'Salida'){echo 'checked';} else{echo '';} ?>>
              Salida
            </label>
            <label>
              <input type="radio" name="lugar_averia" value="Pupitre" class="minimal" <?php if($averias_detail['lugar_averia'] == 'Pupitre'){echo 'checked';} else{echo '';} ?>>
              Pupitre
            </label>
             <label>
              <input type="radio" name="lugar_averia" value="Otros" class="minimal" <?php if($averias_detail['lugar_averia'] == 'Otros'){echo 'checked';} else{echo '';} ?>>
              Otros
            </label>
        </div>
    <div class="form-group">
            <label for="descripcion_averia" class="control-label">Descripción de la Avería</label>
            <textarea name="descripcion_averia" class="form-control" id="descripcion_averia" rows="4" placeholder="" readonly><?= $averias_detail['descripcion_averia']; ?></textarea>
        </div>
        <div class="form-group">
            <label for="observaciones" class="control-label">Observaciones del Técnico</label>
            <textarea name="observaciones" class="form-control" id="observaciones" rows="10" placeholder=""><?= $averias_detail['observaciones']; ?></textarea>
        </div>
     </div>
      <!-- /.box-body -->
  </div>
</div>



<div class="col-md-6">
  <div class="box">
    <div class="box-header with-border">
      <h3 class="box-title">PARTES DE TRABAJO</h3>
    </div>
    <div class="box-body">
      <table class="table">
          <thead>
          <tr>
            <th>Parte 1</th>
          </tr>
        <tbody>
            <tr class="item">
              <td>
                <div class="form-group">
                 <?php if(!empty($error)):
            echo '<span class="alert alert-danger" style="display: block;">';
             foreach ($error as $item => $value):?>
                <?php echo $item;?>: <?php echo $value;?>
        <?php endforeach; echo '</span>'; endif; ?>

           <span id="filename">Seleccionar un fichero</span>
                        <label for="file-upload">Examinar<input type="file" name="userfile" id="file-upload"></label>
            <p><small class="text-success">Ficheros permitidos: gif, jpg, png, jpeg, pdf - (2MB Máx.)</small></p>


        <?php if(($averias_detail['documento'])==""){ echo 'No hay parte de trabajo adjunto'; } else {?>
                    <?php echo 'Archivo Actual: '.$averias_detail['documento'];} ?>   
                </div>
              </td>
            </tr>
        </tbody>
      </table>
        <table class="table">
          <thead>
          <tr>
            <th>Parte 2</th>
          </tr>
        <tbody>
            <tr class="item">
             <td>
                <div class="form-group">
                 <?php if(!empty($error2)):
            echo '<span class="alert alert-danger" style="display: block;">';
             foreach ($error2 as $item => $value):?>
                <?php echo $item;?>: <?php echo $value;?>
        <?php endforeach; echo '</span>'; endif; ?>

           <span id="filename2">Seleccionar un fichero</span>
                        <label for="file-upload2">Examinar<input type="file" name="userfile2" id="file-upload2"></label>
            <p><small class="text-success">Ficheros permitidos: gif, jpg, png, jpeg, pdf - (2MB Máx.)</small></p>


        <?php if(($averias_detail['documento2'])==""){ echo 'No hay parte de trabajo adjunto'; } else {?>
                    <?php echo 'Archivo Actual: '.$averias_detail['documento2'];} ?>   
                </div>
              </td>
            </tr>
        </tbody>
      </table>
        <table class="table">
          <thead>
          <tr>
            <th>Parte 3</th>
          </tr>
        <tbody>
            <tr class="item">
             <td>
                <div class="form-group">
                 <?php if(!empty($error3)):
            echo '<span class="alert alert-danger" style="display: block;">';
             foreach ($error3 as $item => $value):?>
                <?php echo $item;?>: <?php echo $value;?>
        <?php endforeach; echo '</span>'; endif; ?>

           <span id="filename3">Seleccionar un fichero</span>
                        <label for="file-upload3">Examinar<input type="file" name="userfile3" id="file-upload3"></label>
            <p><small class="text-success">Ficheros permitidos: gif, jpg, png, jpeg, pdf - (2MB Máx.)</small></p>


        <?php if(($averias_detail['documento3'])==""){ echo 'No hay parte de trabajo adjunto'; } else {?>
                    <?php echo 'Archivo Actual: '.$averias_detail['documento3'];} ?>   
                </div>
              </td>
            </tr>
        </tbody>
      </table>

I have the following code to upload 3 files separately, not multiple upload, it is in codeigniter but I only run the first if it goes up and it does everything right with the first file, the other if of the following files do not He executes them.

This is the driver:

    if($this->input->post('submit')){

                if (!empty($_FILES['userfile']['name']))  { 

                           $config = array(
                'upload_path' => "./uploads/averias/partes/1/",
                'allowed_types' => "gif|jpg|png|jpeg|pdf",
                'overwrite' => TRUE,
                'max_size' => "2048000", // Can be set to particular file size , here it is 2 MB(2048 Kb)
                'max_height' => "1200",
                'max_width' => "1900"
                );
            $this->load->library('upload', $config);

                            if($this->upload->do_upload('userfile')){
                                    $datafiles = array('upload_data' => $this->upload->data());
                                    $eliminararchivo = $this->user_model->obtener_doc($id);
                                    unlink("./uploads/averias/partes/1/".$eliminararchivo->documento);

                                    $data['averias_data'] = array(                      
                    'lugar_averia' => $this->input->post('lugar_averia'),                       
                    'documento' => $datafiles['upload_data']['file_name'],
                                            'observaciones' => $this->input->post('observaciones'),
                                         );

                $averias_data = $this->security->xss_clean($data['averias_data']);

                $result = $this->user_model->update_averias($averias_data, $id);

                                   if($result){                                               
                    $this->session->set_flashdata('msg', 'Avería actualizada correctamente');                                                                 
                    redirect(base_url('profile/edit/'.$id));       

                }  


                            } 

                } elseif (empty($_FILES['userfile']['name'])){
                                $nombrearchivo = $this->user_model->obtener_doc($id);

                                $data['averias_data'] = array(

                    'lugar_averia' => $this->input->post('lugar_averia'),
                    'documento' => $nombrearchivo->documento, 
                                            'observaciones' => $this->input->post('observaciones'),
                                         );

                $averias_data = $this->security->xss_clean($data['averias_data']);

                $result = $this->user_model->update_averias($averias_data, $id);


                                  if($result){                                               
                    $this->session->set_flashdata('msg', 'Avería actualizada correctamente');                                                                 
                    redirect(base_url('profile/edit/'.$id));       

                }  


                            } else {
                                $data['error'] = array('error' => $this->upload->display_errors());
                                $data['averias_detail'] = $this->user_model->get_averias_by_id($id);
                                $data['title'] = 'Editar Avería';
                                $data['view'] = 'user/averias/averias_edit';
                                $this->load->view('layout', $data);
                            }

                if (!empty($_FILES['userfile2']['name']))  { 

                            $config2 = array(
                'upload_path' => "./uploads/averias/partes/2/",
                'allowed_types' => "gif|jpg|png|jpeg|pdf",
                'overwrite' => TRUE,
                'max_size' => "2048000", // Can be set to particular file size , here it is 2 MB(2048 Kb)
                'max_height' => "1200",
                'max_width' => "1900"
                );
            $this->load->library('upload', $config2);

                            if($this->upload->do_upload('userfile2')){
                                    $datafiles2 = array('upload_data2' => $this->upload->data());
                                    $eliminararchivo2 = $this->user_model->obtener_doc($id);
                                    unlink("./uploads/averias/partes/2/".$eliminararchivo2->documento2);

                                    $data['averias_data'] = array(                      
                    'lugar_averia' => $this->input->post('lugar_averia'),
                    'documento2' => $datafiles2['upload_data2']['file_name'],
                                            'observaciones' => $this->input->post('observaciones'),
                                         );

                $averias_data = $this->security->xss_clean($data['averias_data']);

                $result = $this->user_model->update_averias($averias_data, $id);


                                    if($result){                                               
                    $this->session->set_flashdata('msg', 'Avería actualizada correctamente');                                                                 
                    redirect(base_url('profile/edit/'.$id));       

                }                                       

                                }             

                }elseif ((empty($_FILES['userfile2']['name']))){
                                $nombrearchivo2 = $this->user_model->obtener_doc($id);

                                $data['averias_data'] = array(

                    'lugar_averia' => $this->input->post('lugar_averia'),
                    'documento2' => $nombrearchivo2->documento2,
                                            'observaciones' => $this->input->post('observaciones'),
                                         );



                $averias_data = $this->security->xss_clean($data['averias_data']);

                $result = $this->user_model->update_averias($averias_data, $id);


                                    if($result){                                               
                    $this->session->set_flashdata('msg', 'Avería actualizada correctamente');                                                                 
                    redirect(base_url('profile/edit/'.$id));       

                }  


                            } else {
                                $data['error2'] = array('error2' => $this->upload->display_errors());
                                $data['averias_detail'] = $this->user_model->get_averias_by_id($id);
                                $data['title'] = 'Editar Avería';
                                $data['view'] = 'user/averias/averias_edit';
                                $this->load->view('layout', $data);
                            } 


                if (!empty($_FILES['userfile3']['name']))  { 

                            $config3 = array(
                'upload_path' => "./uploads/averias/partes/3/",
                'allowed_types' => "gif|jpg|png|jpeg|pdf",
                'overwrite' => TRUE,
                'max_size' => "2048000", // Can be set to particular file size , here it is 2 MB(2048 Kb)
                'max_height' => "1200",
                'max_width' => "1900"
                );
            $this->load->library('upload', $config3);

                            if($this->upload->do_upload('userfile3')){
                                    $datafiles3 = array('upload_data3' => $this->upload->data());
                                    $eliminararchivo3 = $this->user_model->obtener_doc($id);
                                    unlink("./uploads/averias/partes/3/".$eliminararchivo3->documento3);

                                    $data['averias_data'] = array(                      
                    'lugar_averia' => $this->input->post('lugar_averia'),
                    'documento3' => $datafiles3['upload_data3']['file_name'],
                                            'observaciones' => $this->input->post('observaciones'),
                                         );

                $averias_data = $this->security->xss_clean($data['averias_data']);

                $result = $this->user_model->update_averias($averias_data, $id);


                                    if($result){                                               
                    $this->session->set_flashdata('msg', 'Avería actualizada correctamente');                                                                 
                    redirect(base_url('profile/edit/'.$id));       

                }                                       

                                }             

                }elseif ((empty($_FILES['userfile3']['name']))){
                                $nombrearchivo3 = $this->user_model->obtener_doc($id);

                                $data['averias_data'] = array(

                    'lugar_averia' => $this->input->post('lugar_averia'),
                    'documento3' => $nombrearchivo3->documento3,
                                            'observaciones' => $this->input->post('observaciones'),
                                         );



                $averias_data = $this->security->xss_clean($data['averias_data']);

                $result = $this->user_model->update_averias($averias_data, $id);


                                    if($result){                                               
                    $this->session->set_flashdata('msg', 'Avería actualizada correctamente');                                                                 
                    redirect(base_url('profile/edit/'.$id));       

                }  


                            } else {
                                $data['error3'] = array('error3' => $this->upload->display_errors());
                                $data['averias_detail'] = $this->user_model->get_averias_by_id($id);
                                $data['title'] = 'Editar Avería';
                                $data['view'] = 'user/averias/averias_edit';
                                $this->load->view('layout', $data);
                            }



                   }else{

            $data['averias_detail'] = $this->user_model->get_averias_by_id($id);
            $data['title'] = 'Editar Avería';
            $data['view'] = 'user/averias/averias_edit';
            $this->load->view('layout', $data);
        }

Greetings

    
asked by elyera 04.06.2018 в 16:39
source

1 answer

0

You are using elseif therefore when you enter any if or elseif no longer enter the others, you have to make the if separated, I'll give you an example of how I received them in a project that I carried out and justly required 4 images where the loading of the 4 was not necessary, it is quite clear and it is what you are doing.

View formulario :

<form id="form" action="<?echo base_url('index/savePost')?>" method="post" enctype="multipart/form-data" style="height: 2250px">
    <p class="spaceleft">State:</p>
    <div class="centered">
        <select id="selectState" class="select" name="form[state]" size="1" required>
            <option value="" disabled selected value>Select One</option>
            <?php foreach($States as $State){?>
                <option value="<?php echo $State['id']?>"><?php echo $State['name']?></option>
            <?php } ?>
        </select>
    </div>
    <p class="spaceleft">County:</p>
    <div class="centered">
        <select id="selectCounty" class="select" name="form[county]" size="1" disabled required>
            <option value="" disabled selected value>Select One</option>
        </select>
    </div>
    <p class="spaceleft">City:</p>
    <div class="centered">
        <select id="selectCity" class="select" name="form[city]" size="1" disabled required>
            <option value="" disabled selected value>Select One</option>
        </select>
    </div>
    <p class="spaceleft">Vehicle Type:</p>
    <div class="centered">
        <select id="selectVehicle" class="select" name="form[vehicle]" size="1" disabled required>
            <option value="" disabled selected value>Select One</option>
            <?php foreach($Vehicles as $Vehicle){?>
                <option value="<?php echo $Vehicle['id'];?>"><?php echo $Vehicle['name'];?></option>
            <?php } ?>
        </select>
    </div>
    <p class="spaceleft">Action:</p>
    <div class="centered">
        <select id="selectAction" class="select" name="form[action]" size="1" disabled required>
            <option value="" disabled selected value>Select One</option>
            <?php foreach($Actions as $Action){?>
                <option value="<?php echo $Action['id'];?>"><?php echo $Action['name'];?></option>
            <?php } ?>
        </select>
    </div>
    <p class="spaceleft">Title:</p>
    <div class="centered">
        <input type="text" id="inputTitle" class="title" name="form[title]" size="21" style=" font-size: 55px; height: 75px; width: 870px;"  required>
    </div>
    <p class="spaceleft">Description:</p>
    <div class="centered">
        <textarea id="inputDescription" class="description" name="form[description]" cols="30" rows="10" required></textarea>
    </div>
    <p class="spaceleft">Attach Images:</p>
    <div class="centered">
        <input class="space" name="img_1" type="file" id="img_1" accept="image/x-png, image/gif, image/jpeg, image/jpg" size="21" style=" font-size: 55px; height: 75px; width: 870px;" required/>
        <input class="space" name="img_2" type="file" id="img_2" accept="image/x-png, image/gif, image/jpeg, image/jpg" size="21" style=" font-size: 55px; height: 75px; width: 870px;"/>
        <input class="space" name="img_3" type="file" id="img_3" accept="image/x-png, image/gif, image/jpeg, image/jpg" size="21" style=" font-size: 55px; height: 75px; width: 870px;"/>
        <input class="space" name="img_4" type="file" id="img_4" accept="image/x-png, image/gif, image/jpeg, image/jpg" size="21" style=" font-size: 55px; height: 75px; width: 870px;"/>
    </div>
    <div class="centered">
        <?php echo $map['html']; ?>
    </div>
    <div class="centered" hidden="true">
        <input type="text" id="inputLat" class="title" name="form[lat]" size="21" style=" font-size: 55px; height: 75px; width: 870px;"  required>
    </div>
    <div class="centered" hidden="true">
        <input type="text" id="inputLng" class="title" name="form[lng]" size="21" style=" font-size: 55px; height: 75px; width: 870px;"  required>
    </div>
    <div class="centeredlimit">
        <button type="submit" class="auto-style2">
            <img src="<?echo base_url("assets/img/buttons/button_post.jpg");?>" height="120" width="650" >
        </button>
    </div>
</form>

Controller funcion :

public function savePost()
    {
        if (isset($_POST['form'])){
            $form = $_POST['form'];
            if (!empty($_FILES['img_1']['name'])){
                $config['upload_path'] = 'assets/img/images/';
                $config['allowed_types'] = 'gif|jpg|png|jpeg';
                $this->load->library('upload', $config);
                $this->upload->initialize($config);

                if ($this->upload->do_upload('img_1')){
                    $img_1 = $this->upload->data();
                }else{
                    echo $this->upload->display_errors();
                }
            }
            if (!empty($_FILES['img_2']['name'])){
                $config['upload_path'] = 'assets/img/images/';
                $config['allowed_types'] = 'gif|jpg|png|jpeg';
                $this->load->library('upload', $config);
                $this->upload->initialize($config);

                if ($this->upload->do_upload('img_2')){
                    $img_2 = $this->upload->data();
                }else{
                    echo $this->upload->display_errors();
                }
            }
            if (!empty($_FILES['img_3']['name'])){
                $config['upload_path'] = 'assets/img/images/';
                $config['allowed_types'] = 'gif|jpg|png|jpeg';
                $this->load->library('upload', $config);
                $this->upload->initialize($config);

                if ($this->upload->do_upload('img_3')){
                    $img_3 = $this->upload->data();
                }else{
                    echo $this->upload->display_errors();
                }
            }
            if (!empty($_FILES['img_4']['name'])){
                $config['upload_path'] = 'assets/img/images/';
                $config['allowed_types'] = 'gif|jpg|png|jpeg';
                $this->load->library('upload', $config);
                $this->upload->initialize($config);

                if ($this->upload->do_upload('img_4')){
                    $img_4 = $this->upload->data();
                }else{
                    echo $this->upload->display_errors();
                }
            }

            if(!isset($img_1['file_name'])){$img_1['file_name'] = "";}
            if(!isset($img_2['file_name'])){$img_2['file_name'] = "";}
            if(!isset($img_3['file_name'])){$img_3['file_name'] = "";}
            if(!isset($img_4['file_name'])){$img_4['file_name'] = "";}

            $aData = array(
                'id_state' => $form['state'],
                'id_county' => $form['county'],
                'id_city' => $form['city'],
                'id_vehicle' => $form['vehicle'],
                'id_action' => $form['action'],
                'title' => $form['title'],
                'description' => $form['description'],
                'img_1' => $img_1['file_name'],
                'img_2' => $img_2['file_name'],
                'img_3' => $img_3['file_name'],
                'img_4' => $img_4['file_name'],
                'lat' => $form['lat'],
                'lng' => $form['lng']
            );

            if($id = $this->Index_model->saveAd($aData))
            {
                $data = $aData;
                $data['Id'] = $id;
                $data['Title'] = "Posting Confirmation";
                $this->load->view('posting_confirmation',$data);
            }
        }else{
            redirect('index', 'refresh');
        }
    }
    
answered by 05.06.2018 / 08:00
source