Измените загрузку одного файла на загрузку нескольких файлов с помощью php

#php #html #mysql #codeigniter #file-upload

#php #HTML #mysql #кодовое устройство #файл-загрузить

Вопрос:

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

Вот обработчик базы данных

 //Slider image if(!empty($_FILES['slider_image'])){  $s = 0;   $files = $_FILES;  $cnt = count($_FILES['slider_image']['name']);  for ($s = 0; $s lt; $cnt; $s  ) {   $cap = $_POST['slider_title'][$s];  $_FILES['slider_image']['name'] = $files['slider_image']['name'][$s];  $_FILES['slider_image']['type'] = $files['slider_image']['type'][$s];  $_FILES['slider_image']['tmp_name'] = $files['slider_image']['tmp_name'][$s];  $_FILES['slider_image']['error'] = $files['slider_image']['error'][$s];  $_FILES['slider_image']['size'] = $files['slider_image']['size'][$s];   $config2['image_library'] = 'gd2';  $config2['allowed_types'] = 'gif|jpg|png|jpeg|JPG|GIF|PNG|JPEG';  $config2['source_image'] = $_FILES['slider_image']['tmp_name'];  $config2['thumb_marker'] = '';  $this-gt;load-gt;helper('string');  // $ext = array_pop(explode('.', $_FILES['slider_image']['name']));  $array = explode('.', $_FILES['slider_image']['name']);  $ext = array_pop($array);  $n = random_string() . '.' . $ext;  $config2['new_image'] = './uploads/' . $n;  $this-gt;load-gt;library('image_lib', $config2);  $this-gt;image_lib-gt;initialize($config2);  if (!$this-gt;image_lib-gt;resize()) {  echo $error = $this-gt;image_lib-gt;display_errors();  exit;  } else {  $s_img['title'] = $cap;   $s_img['image'] = $n;  $s_img['vehicle_id'] = $id;    $this-gt;db-gt;insert('tbl_images', $s_img);    }  } }  

Вот поле формы перед добавлением нескольких=»»

 function add_slider_image(){  var n='lt;div class="form-group more_' counter '"gt;lt;div class="row"gt;lt;div class="col-md-3"gt;lt;labelgt;Upload Image:lt;/labelgt;lt;input type="file" class="styled form-control" id="report-screenshot" name="slider_image[]"gt;lt;span class="help-block"gt;Accepted formats: gif, png, jpg. Max file size 10Mblt;/spangt;lt;/divgt;  lt;div class="col-md-3"gt;lt;labelgt;Captionlt;/labelgt;lt;input type="text" name="slider_title[]" class="form-control"gt;lt;/divgt;lt;div class="col-md-3"gt;lt;a href="javascript:void(0);" onclick="remove_more(' counter ')" class="btn btn-danger my_btn"gt;Removelt;/agt;lt;/divgt;lt;/divgt;lt;/divgt;';  $('#more_slider_image').append(n);  counter   ;  

Комментарии:

1. Вы используете codeigniter (или какой-либо другой фреймворк с аналогичным синтаксисом?)

2. Кроме того, не публикуйте, как выглядел код до того, как вы его изменили. Покажите нам, что у вас есть сейчас, и добавьте надлежащее объяснение проблемы. Что происходит, когда вы запускаете свой код? Где ты застрял?

3. Да, это codeigniter, и приношу извинения за проблему с формулировкой, это текущий код. Когда я запускаю приведенный выше код, он работает для одного изображения за раз. Я должен продолжать добавлять изображения одно за другим. Я хочу иметь возможность перетащить всю папку в 1 файл для загрузки и нажать «Отправить». В настоящее время, если я добавлю несколько=»» и попытаюсь загрузить сразу несколько изображений, все равно будет отображаться только первое выбранное изображение.