#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 файл для загрузки и нажать «Отправить». В настоящее время, если я добавлю несколько=»» и попытаюсь загрузить сразу несколько изображений, все равно будет отображаться только первое выбранное изображение.