загрузка нескольких файлов с использованием одного поля файла в codeigniter - PullRequest
1 голос
/ 29 июля 2011

решено У меня есть поле с именем файла additional_photos[] на веб-странице, может быть n экземпляров этого поля, конечно, с другим идентификатором, но с одинаковым именем.В обычном PHP-коде я буду делать foreach на $_FILES['additional_photos'] и буду отдыхать легко.Но как мне добиться того же с CodeIgniter?Я попытался сделать это:

        $additional_photosCount = count($_FILES['additional_photos']['name']); //Is there a better way to refer $_FILES like I can refere $_POST in CI?
        for($i=0; $i< $additional_photosCount; $i++){
            $uploadConfig['file_name'] = $this->properties['userId'].'-'.$_FILES['additional_photos']['name'][$i];
            $this->CI->upload->initialize($uploadConfig);
            if(!$this->CI->upload->do_upload('additional_photos['.$i.']')){;
                echo $this->CI->upload->display_errors();
            }
        }

Но это,
a) ИМХО, неверный путь
b) выдает ошибку «Вы не выбрали файл для загрузки».
Обновление
Это выход, который я мог бы применить:

        $additional_photosCount = count($_FILES['additional_photos']['name']);
        for($i=0; $i< $additional_photosCount; $i++){
            $uploadConfig['file_name'] = $this->properties['userId'].'-'.$_FILES['additional_photos']['name'][$i];
            $this->CI->upload->initialize($uploadConfig);
            $_FILES['additional_photos_'.$i] = array(
                'tmp_name'=> $_FILES['additional_photos']['tmp_name'][$i],
                'name'=> $_FILES['additional_photos']['name'][$i],
                'type'=> $_FILES['additional_photos']['type'][$i],
                'size'=> $_FILES['additional_photos']['size'][$i],
                'error'=> $_FILES['additional_photos']['error'][$i],
            );
            if(!$this->CI->upload->do_upload('additional_photos_'.$i)){;
                echo $this->CI->upload->display_errors();//TODO: instead of echoing push errors to a list
            }
        }

Ответы [ 2 ]

1 голос
/ 29 июля 2011

Проверьте это: https://github.com/nicdev/CodeIgniter-Multiple-File-Upload, должны делать то, что вы хотите выше.

0 голосов
/ 29 июля 2011

в HTML5 вы можете использовать эту функцию

Если вы хотите, чтобы пользователь мог выбрать несколько файлов, просто используйте атрибут нескольких в элементе ввода:

   <input type="file" id="input" multiple onchange="handleFiles(this.files)">

ССЫЛКА

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