is_uploaded_file () ожидает, что параметр 1 будет строкой, массив передан при загрузке нескольких файлов в codeigniter - PullRequest
0 голосов
/ 30 октября 2019

Я не могу загрузить несколько

Вот моя форма просмотра

<form method="POST" action="<?=base_url()?>register/saverecord" enctype="multipart/form-data">
        <input type="file" name="file_upload[]"  multiple="multiple" value=""><br/><br/>
        <input type="submit" name="submit" value="SUBMIT">
    </form>

Вот мой код для множественной загрузки

<code>public function saveRecord() {
        $config['upload_path'] = APPPATH . './uploads/';
        $path = $config['upload_path'];
        $config['allowed_types'] = '*';
        $config['max_size'] = '1024';
        $config['max_width'] = '1920';
        $config['max_height'] = '1280';
        $this->load->library('upload', $config);
        $fileName = [];
        foreach ($_FILES as $fieldname => $fileObject) //fieldname is the form field name
        {
            if (!empty($fileObject['name'])) {
                $this->upload->initialize($config);
                if (!$this->upload->do_upload($fieldname)) {
                    $errors = $this->upload->display_errors();

                } else {
                    $fileName[] = $this->upload->data();
                }
            }
        }
        echo "<pre>";
        print_r($fileName);
        echo "
"; выход;}

Вот мое сообщение об ошибке, которое я получаю после загрузки enter image description here

Я следовал за этим URL Загрузка нескольких файлов в CodeIgniter

Ответы [ 3 ]

0 голосов
/ 30 октября 2019

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

<code>public function saveRecord() {
        $config['upload_path'] = APPPATH . './uploads/';
        $path = $config['upload_path'];
        $config['allowed_types'] = '*';
        $config['max_size'] = '1024';
        $config['max_width'] = '1920';
        $config['max_height'] = '1280';
        $this->load->library('upload', $config);
        $fileName = [];
        foreach ($_FILES as $fieldname => $fileObject) //fieldname is the form field name
        {
            if (!empty($fileObject['name'])) {
                $this->upload->initialize($config);
                if (!$this->upload->do_upload($fileObject['name'])) {
                    $errors = $this->upload->display_errors();

                } else {
                    $fileName[] = $this->upload->data();
                }
            }
        }
        echo "<pre>";
        print_r($fileName);
        echo "
"; выход;}
0 голосов
/ 30 октября 2019

При обработке загрузки multiple file вы можете получить доступ к различным файлам следующим образом - как вы связываете это с нативными методами, доступными вам через codeigniter Я не знаю

foreach( $_FILES[ 'fieldname' ] as $i => $void ){
    $name=$_FILES[ 'fieldname' ]['name'][$i];
    $tmp=$_FILES[ 'fieldname' ]['tmp_name'][$i];
    $size=$_FILES[ 'fieldname' ]['size'][$i];
    $type=$_FILES[ 'fieldname' ]['type'][$i];

    /* other code */

}
0 голосов
/ 30 октября 2019
if (!$this->upload->do_upload($fieldname)) {

Здесь fieldname - это массив, здесь нужно иметь отдельные файлы вместо массива.

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