Как сформировать валидацию вместе с валидацией загрузки изображений - PullRequest
0 голосов
/ 27 марта 2019

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

, приведенный ниже, это мой файл просмотра

<div class="box box-primary">
      <!-- /.box-header --> 
      <!-- form start -->
      <?php 
        $data = array(
          'id' => 'add_store_form'
        );
        echo form_open_multipart('ramay/store/add_store', $data); 
      ?>

        <div class="box-body add-store-form">
          <div class="form-group">
              <label for="store_name">Store Name <span class="text-red">*</span></label>
              <?php
                  $store_name = array(
                      'type'  => 'text',
                      'name'  => 'store_name',
                      'class' => 'form-control',
                      'id'    => 'input_store_name',
                      'value' => ''
                  );
                  echo form_input($store_name);
              ?>
              <?php echo form_error('store_name', '<div class="alert alert-danger" role="alert">', '</div>'); ?>
          </div>

          <div class="form-group">
              <label for="store_logo">Store Logo <span class="text-red">*</span></label>
              <?php
                  $store_logo = array(
                    'type' => 'file',
                    'name' => 'store_logo',
                    'class' => 'form-control',
                    'id' => 'input_store_logo',
                    'value' => ''
                  );
                  echo form_upload($store_logo);
              ?>
              <?php echo form_error('store_logo', '<div class="alert alert-danger" role="alert">', '</div>'); ?>
          </div>

        </div>
        <!-- /.box-body -->

        <div class="box-footer">
          <?php
              $hidden = array(
                  'type'  => 'hidden',
                  'name'  => 'add_store',
                  'value' => ''
              );
              echo form_input($hidden);
          ?>
          <?php
              $submit = array(
                  'name'          => 'add_store',
                  'class'         => 'btn btn-primary',
                  'id'            => 'add_store_submit',
                  'type'          => 'submit',
                  'content'       => 'Submit'
              );
              echo form_button($submit);
          ?> 
          <?php
              $reset = array(
                  'class'         => 'btn btn-default',
                  'type'          => 'reset',
                  'content'       => 'Cancel',
                  'onClick'       => "location.href='ramay/store/store_listing'",
                  'style'         => 'margin-left:10px'
              );
              echo form_button($reset);
          ?> 
        </div>
      <?php echo form_close(); ?>

    </div>

, приведенный ниже, мой контроллер

public function add_store()
{
    if (isset($_POST['add_store'])) {
        $config['upload_path']          = './uploads/stores/';
        $config['allowed_types']        = 'gif|jpg|png';
        $config['max_size']             = 100;
        $config['max_width']            = 1024;
        $config['max_height']           = 768;

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

        $store_form_rules = array(
            array(
                'field' => 'store_name',
                'label' => 'Store name',
                'rules' => 'required|trim|xss_clean|max_length[75]'
            ),
            array(
                'field' => 'store_logo',
                'label' => 'Store logo',
                'rules' => 'required|trim|xss_clean'
            )
        );

        $this->form_validation->set_rules($store_form_rules);

        $this->form_validation->set_message('required', '{field} is required');


        if ($this->form_validation->run()) {
            echo 'working';
        }
    }

    $data['page_title'] = 'Add Store';
    $this->load->view('ramay/add_store', $data);
}

Я хочу знать, как проверить и форму, изагрузка файла одновременно

Ответы [ 2 ]

0 голосов
/ 27 марта 2019

Если эхо «работает» означает, что вы прошли валидацию с базовой валидацией

if ($this->form_validation->run()) {
      echo 'working'; // all fine except image upload
      if (!$this->upload->do_upload('store_logo')){
        //store_logo is input name in your form
        //if coming in this block means error 
        $err = $this->upload->display_errors();
      }else{
        //image has been uploaded
        // you can get all details of uploaded images data
        $upload_data_array = $this->upload->data();
      }

}

больше вы можете посетить - https://www.codeigniter.com/userguide3/libraries/file_uploading.html

0 голосов
/ 27 марта 2019

Используя библиотеку загрузки CodeIgniter, вы можете сделать что-то подобное в вашем контроллере:

if (!$this->upload->do_upload('store_logo'))
{
  // do whatever it is that you do if the image wasn't uploaded
  // you may even use $this->upload->display_errors() to see or display the error messages
}

Как вы, возможно, уже поняли, помощник form_validation не работает для двоичной частимногочастная форма

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