Я получаю пустой массив, мне нужен массив изображений при загрузке нескольких изображений в Codeigniter - PullRequest
1 голос
/ 29 марта 2020

Этот код предназначен для получения имени файла в массиве. Я получаю пустой массив файла. Здесь я прилагаю исходный код для той же проблемы. Посмотрите код и дайте мне какое-нибудь решение

            $images = array();    

            $count = count($_FILES['files']['name']);

            for($i = 0; $i < $count ; $i++)
            {                 

                if(!empty($_FILES['file']['name'][$i]))
                {

                    $tmp = explode(".",$_FILES['files']['name'][$i]);
                    $file_extension = end($tmp); //this is temp variable

                    $imagename = time().".".$file_extension;                                    

                    // Define new $_FILES array - $_FILES['file']
                    $_FILES['file']['name'] = $_FILES['files']['name'][$i];
                    $_FILES['file']['type'] = $_FILES['files']['type'][$i];
                    $_FILES['file']['tmp_name'] = $_FILES['files']['tmp_name'][$i];
                    $_FILES['file']['error'] = $_FILES['files']['error'][$i];
                    $_FILES['file']['size'] = $_FILES['files']['size'][$i];

                    // Set preference
                    $config['upload_path'] = './uploads/'; 
                    $config['allowed_types'] = 'jpg|jpeg|png|gif';   // this is allowed file type                 
                    $config['file_name'] = $imagename;

                    //Load upload library
                    $this->load->library('upload',$config);                                                     
                    if($this->upload->do_upload('file')){
                        // Get data about the file
                        $uploadData = $this->upload->data();
                        $filename = $uploadData['file_name'];

                        // Initialize array
                        array_push($images, $filename);
                    }                    
                }
            }
            echo "<pre>";print_r($images);die;

Также здесь я прилагаю код формы

 <?php $attributes = array(
 "class"                 => "form-horizontal m-t-20",
 "method"                => "post",
 "novalidate"            => "",
 "enctype"               => "multipart/form-data"
 );
 echo form_open('admin/user/adduser', $attributes); ?>

This code for file input
<label for="file">Profile Images*</label>
<input type="file" name="files[]" id="file" multiple required placeholder="Profile Images" class="form-control">

Ответы [ 2 ]

2 голосов
/ 29 марта 2020

Заменить линию

if(!empty($_FILES['file']['name'][$i]))

на

if(!empty($_FILES['files']['name'][$i]))
1 голос
/ 29 марта 2020

Измените files на files[]. Вы можете прочитать больше здесь .

Предложение

Переместить эту строку $this->load->library('upload',$config) из l oop, потому что каждая итерация CI попытается загрузить загруженную библиотеку, которая уже загружена. Это может повлиять на производительность сайта. Вы можете использовать функцию initialize () .

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