Download multiple images with CodeIgniter

I am a new user to use a code igniter in my project. Before downloading multiple files, I run into one problem, but the last one is only inserted into all images of the three images.

my controller:

function products() { date_default_timezone_set("Asia/Kolkata"); $config['upload_path'] = './resources/images/products/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = 1000; $config['max_width'] = 1024; $config['max_height'] = 768; $this->load->library('upload', $config); $this->upload->do_upload('userfile'); $data = array('prod_image' => $this->upload->data(), 'prod_image1' => $this->upload->data(), 'prod_image2' => $this->upload->data()); $product_image=$data['prod_image']['file_name']; $product_image1=$data['prod_image1']['file_name']; $product_image2=$data['prod_image2']['file_name']; $data = array( 'name' => $this->input->post('pd_name'), 'prod_image' => $product_image, 'prod_image1' => $product_image1, 'prod_image2' => $product_image2, 'created_time' => date('Ymd H:i:s')); // insert form data into database $result_set= $this->tbl_products_model->insertUser($data); } 

My view part:

 <input class="form-control" name="pd_name"type="text"/> <input type="file" class="file_upload2" name="userfile"/> //1 <input type="file" class="file_upload2" name="userfile"/> //2 <input type="file" class="file_upload2" name="userfile"/>//3 

Please help how to insert 3 images.

my database for example

 =========================================== id|name|prod_image|prod_image1|prod_image2| =========================================== 1|ard| | | | ============================================ 
+8
source share
3 answers

Html:

 <input type="file" name="userfile[]" multiple="multiple"> 

PHP:

 <?php public function products() { $this->load->library('upload'); $dataInfo = array(); $files = $_FILES; $cpt = count($_FILES['userfile']['name']); for($i=0; $i<$cpt; $i++) { $_FILES['userfile']['name']= $files['userfile']['name'][$i]; $_FILES['userfile']['type']= $files['userfile']['type'][$i]; $_FILES['userfile']['tmp_name']= $files['userfile']['tmp_name'][$i]; $_FILES['userfile']['error']= $files['userfile']['error'][$i]; $_FILES['userfile']['size']= $files['userfile']['size'][$i]; $this->upload->initialize($this->set_upload_options()); $this->upload->do_upload(); $dataInfo[] = $this->upload->data(); } $data = array( 'name' => $this->input->post('pd_name'), 'prod_image' => $dataInfo[0]['file_name'], 'prod_image1' => $dataInfo[1]['file_name'], 'prod_image2' => $dataInfo[2]['file_name'], 'created_time' => date('Ymd H:i:s') ); $result_set = $this->tbl_products_model->insertUser($data); } private function set_upload_options() { //upload an image options $config = array(); $config['upload_path'] = './resources/images/products/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '0'; $config['overwrite'] = FALSE; return $config; } ?> 
+11
source

The problem is the following line of code:

 <input type="file" class="file_upload2" name="userfile"/> //1 <input type="file" class="file_upload2" name="userfile"/> //2 <input type="file" class="file_upload2" name="userfile"/>//3 

All three of these have the same name.

To solve this, there are two ways:

Give diff name to all 3 input type files

Create a single input type file with its multiple file selection true, and its name should be an array of type:

 <input type="file" name="filefield[]" multiple="multiple"> 

Make the following changes and try again.

+2
source

Multiple files upload unlimited files

Database table column names ( profile_images ) - is file_name (255, varcher) , added_datetime (current timestamp)

Look

 <?php echo validation_errors();?> <?php echo form_open_multipart('pages/multiple_files');?> <p><input type="file" multiple="multiple" name="image_name[]" class="form-control" /></p> <input type="submit" class="btn btn-success btn-block"/> </form> 

controller

 public function multiple_files(){ $this->load->library('upload'); $image = array(); $ImageCount = count($_FILES['image_name']['name']); for($i = 0; $i < $ImageCount; $i++){ $_FILES['file']['name'] = $_FILES['image_name']['name'][$i]; $_FILES['file']['type'] = $_FILES['image_name']['type'][$i]; $_FILES['file']['tmp_name'] = $_FILES['image_name']['tmp_name'][$i]; $_FILES['file']['error'] = $_FILES['image_name']['error'][$i]; $_FILES['file']['size'] = $_FILES['image_name']['size'][$i]; // File upload configuration $uploadPath = './assets/images/profiles/'; $config['upload_path'] = $uploadPath; $config['allowed_types'] = 'jpg|jpeg|png|gif'; // Load and initialize upload library $this->load->library('upload', $config); $this->upload->initialize($config); // Upload file to server if($this->upload->do_upload('file')){ // Uploaded file data $imageData = $this->upload->data(); $uploadImgData[$i]['image_name'] = $imageData['file_name']; } } if(!empty($uploadImgData)){ // Insert files data into the database $this->pages_model->multiple_images($uploadImgData); } } 

model

  public function multiple_images($image = array()){ return $this->db->insert_batch('profile_images',$image); } 
0
source

Source: https://habr.com/ru/post/1012613/


All Articles