Пакетная загрузка изображений в codeigniter - PullRequest
0 голосов
/ 27 сентября 2018

Я новичок в Codeigniter и пытаюсь обновить несколько изображений, используя loop.Но я не могу этого сделать, потому что foreach loop обновляет только 1 запись, если есть 3 записи .Заранее спасибо.

Controller.php

if(!empty($_FILES['product_image']['name'][0])) {
      $number_of_files = sizeof($_FILES['product_image']['tmp_name']);
      $files = $_FILES['product_image'];
      $config = array(
          'upload_path' => FCPATH.'uploads/product_images/',
          'allowed_types' => 'jpg|png|jpeg'
      );
      for($i=0;$i<$number_of_files;$i++) {
          $_FILES['product_image']['name'] = $files['name'][$i];
          $_FILES['product_image']['type'] = $files['type'][$i];
          $_FILES['product_image']['tmp_name'] = $files['tmp_name'][$i];
          $_FILES['product_image']['error'] = $files['error'][$i];
          $_FILES['product_image']['size'] = $files['size'][$i];

          $this->upload->initialize($config);
          if($this->upload->do_upload('product_image')) {
              $imgData = $this->upload->data();
          }
          $img[] = array(
            'Image' => $files['name'][$i],
            'SortOrder' => $_POST['sort_order'][$i]
          );
          //unlink("uploads/product_images/".$_POST['path']);
      }
      if($query = $this->M_Product->editProductImg($img,$prodId)) {
        //$error = 0;
        print_r($query);
      } else {
        //$error = 1;
      }
    }

Model.php

public function editProductImg($img,$prodId) {
  $checkExist = $this->fetchSingleImage($prodId);
  if(empty($checkExist)) {
    if($this->db->insert_batch('tbl_product_images',$img)) {
      return true;
    } else {
      return false;
    }
  } else {
    foreach($img as $key => $value) {  

        $this->db->query("update tbl_product_images SET Image='".$value['Image']."',SortOrder='".$value['SortOrder']."' WHERE ProductId='".$prodId."'");

        return $this->db->last_query();
    }
  }
}

1 Ответ

0 голосов
/ 27 сентября 2018

Пожалуйста, проверьте, правильно ли рассчитано количество файлов, или попробуйте использовать

$number_of_files= count($_FILES);

Также измените ваше первое «если» на

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