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

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

контроллер:

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Produk extends CI_Controller {

  private $_uploadMethod = NULL;

  public function __construct()
  {
    parent::__construct();
    if (!$this->session->userdata('status') == 'logged_in') {
      redirect('auth');
    }
    $this->load->model('admin/Produk_model');
  }

  public function index()
  {
    $data['title'] = 'Produk';
    $data['produk'] = $this->Produk_model->getAll();
    $this->template->load('back/template/template', 'back/admin/produk/produk', $data);
  }

  public function add()
  {
    $data['title'] = 'Tambah Produk';
    $data['kategori'] = $this->Produk_model->getAllKategori();
    $data['ikm'] = $this->Produk_model->getAllIkm();
    $this->_uploadMethod = 'add';

    $this->form_validation->set_rules('nama_produk', 'Nama Produk', 'trim|required|max_length[100]');
    $this->form_validation->set_rules('berat', 'Berat', 'trim|required|max_length[12]');
    $this->form_validation->set_rules('deskripsi', 'Deskripsi Produk', 'trim|required');
    $this->form_validation->set_rules('kategori_produk', 'Kategori Produk', 'trim|required');
    $this->form_validation->set_rules('ikm_produk', 'IKM Produk', 'trim|required');
    $this->form_validation->set_rules('foto_1', 'Gambar Produk 1', 'callback_imageValidation1');
    $this->form_validation->set_rules('foto_2', 'Gambar Produk 2', 'callback_imageValidation2');
    $this->form_validation->set_rules('foto_3', 'Gambar Produk 3', 'callback_imageValidation3');
    $this->form_validation->set_rules('foto_4', 'Gambar Produk 4', 'callback_imageValidation4');

    if ($this->form_validation->run() == FALSE) {
      $this->template->load('back/template/template', 'back/admin/produk/add', $data);
    } else {
      $post = $this->input->post(NULL, TRUE);

      var_dump($post);
    }
  }

  public function delete($id_produk = NULL)
  {
    if ($id_produk == NULL) redirect('admin/produk');
  }

  public function imageValidation1()
  {
    if ($this->_uploadMethod == NULL) {
      redirect('admin/produk');
    }
    $config['upload_path'] = './data/produk/'; 
    $config['allowed_types'] = 'gif|jpg|jpeg|png'; 
    $config['max_size'] = 1024*2;
    $config['overwrite'] = TRUE;
    $config['max_filename'] = 240;
    $config['file_name'] = $this->input->post('nama_produk').'_g1'.'_'.time();

    $this->load->library('upload', $config);
    if (!$this->upload->do_upload('foto_1')) {
      $this->form_validation->set_message('imageValidation1', $this->upload->display_errors());
      if ($this->_uploadMethod == 'edit') {
        if ($_FILES['foto_1']['error'] != 4) {
          return FALSE;
        }
      } else {
        return FALSE;
      }
    } else {
      return TRUE;
    }
  }

  public function imageValidation2()
  {
    if ($this->_uploadMethod == NULL) {
      redirect('admin/produk');
    }
    $config['upload_path'] = './data/produk/'; 
    $config['allowed_types'] = 'gif|jpg|jpeg|png'; 
    $config['max_size'] = 1024*2;
    $config['overwrite'] = TRUE;
    $config['max_filename'] = 240;
    $config['file_name'] = $this->input->post('nama_produk').'_g2'.'_'.time();

    $this->load->library('upload', $config);
    if (!$this->upload->do_upload('foto_2')) {
      $this->form_validation->set_message('imageValidation2', $this->upload->display_errors());
      if ($this->_uploadMethod == 'edit') {
        if ($_FILES['foto_2']['error'] != 4) {
          return FALSE;
        }
      } else {
        return FALSE;
      }
    } else {
      return TRUE;
    }
  }

  public function imageValidation3()
  {
    if ($this->_uploadMethod == NULL) {
      redirect('admin/produk');
    }
    $config['upload_path'] = './data/produk/'; 
    $config['allowed_types'] = 'gif|jpg|jpeg|png'; 
    $config['max_size'] = 1024*2;
    $config['overwrite'] = TRUE;
    $config['max_filename'] = 240;
    $config['file_name'] = $this->input->post('nama_produk').'_g3'.'_'.time();

    $this->load->library('upload', $config);
    if (!$this->upload->do_upload('foto_3')) {
      $this->form_validation->set_message('imageValidation3', $this->upload->display_errors());
      if ($this->_uploadMethod == 'edit') {
        if ($_FILES['foto_3']['error'] != 4) {
          return FALSE;
        }
      } else {
        return FALSE;
      }
    } else {
      return TRUE;
    }
  }
  public function imageValidation4()
  {
    if ($this->_uploadMethod == NULL) {
      redirect('admin/produk');
    }
    $config['upload_path'] = './data/produk/'; 
    $config['allowed_types'] = 'gif|jpg|jpeg|png'; 
    $config['max_size'] = 1024*2;
    $config['overwrite'] = TRUE;
    $config['max_filename'] = 240;
    $config['file_name'] = $this->input->post('nama_produk').'_g4'.'_'.time();

    $this->load->library('upload', $config);
    if (!$this->upload->do_upload('foto_4')) {
      $this->form_validation->set_message('imageValidation4', $this->upload->display_errors());
      if ($this->_uploadMethod == 'edit') {
        if ($_FILES['foto_4']['error'] != 4) {
          return FALSE;
        }
      } else {
        return FALSE;
      }
    } else {
      return TRUE;
    }
  }

}

извините за мой плохой английский.

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