Загрузка нескольких файлов (массив) с CodeIgniter 2.0

Ознакомьтесь с URL-адресами, которые помогут вам понять больше

Google Calendar API, добавление события в чей-либо календарь, просто зная его адрес электронной почты

Code Project ссылка

https://www.codeproject.com/Articles/36482/How-to-Create-Google-Calendar-Events-Using-NET

[112 ] https://www.codeproject.com/Articles/565032/Google-Calendar-v-Integration-in-ASP-NET-Create-ed

29
задан 15.05.2020, 14:01

15 ответов

Мне наконец удалось заставить его работать с вашей помощью!

Вот мой код:

 function do_upload()
{       
    $this->load->library('upload');

    $files = 

Мне наконец удалось заставить его работать с вашей помощью!

Вот мой код:

[110]

Спасибо, ребята!

FILES; $cpt = count(

Мне наконец удалось заставить его работать с вашей помощью!

Вот мой код:

[110]

Спасибо, ребята!

FILES['userfile']['name']); for($i=0; $i<$cpt; $i++) {

Мне наконец удалось заставить его работать с вашей помощью!

Вот мой код:

[110]

Спасибо, ребята!

FILES['userfile']['name']= $files['userfile']['name'][$i];

Мне наконец удалось заставить его работать с вашей помощью!

Вот мой код:

[110]

Спасибо, ребята!

FILES['userfile']['type']= $files['userfile']['type'][$i];

Мне наконец удалось заставить его работать с вашей помощью!

Вот мой код:

[110]

Спасибо, ребята!

FILES['userfile']['tmp_name']= $files['userfile']['tmp_name'][$i];

Мне наконец удалось заставить его работать с вашей помощью!

Вот мой код:

[110]

Спасибо, ребята!

FILES['userfile']['error']= $files['userfile']['error'][$i];

Мне наконец удалось заставить его работать с вашей помощью!

Вот мой код:

[110]

Спасибо, ребята!

FILES['userfile']['size']= $files['userfile']['size'][$i]; $this->upload->initialize($this->set_upload_options()); $this->upload->do_upload(); } } private function set_upload_options() { //upload an image options $config = array(); $config['upload_path'] = './Images/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '0'; $config['overwrite'] = FALSE; return $config; }

Спасибо, ребята!

97
ответ дан 15.05.2020, 14:02
  • 1
    @JuanMendes, Как делает это, следуют, What' s логика или объяснение тогда? – Pacerier 31.03.2015, 01:50

В codeigniter нет предопределенного метода для загрузки нескольких файлов за один раз, но вы можете отправить файл в массив и загрузить их один за другим.

. См. Здесь: Это лучший вариант для загрузки нескольких файлов в codeigniter 3.0.1 с предварительным просмотром https://codeaskbuzz.com/how-to-upload-multiple-file-in-codeigniter-framework/

0
ответ дан 15.05.2020, 14:02

Попробуйте этот код.

Это работает нормально для меня

Вы должны каждый раз инициализировать библиотеку

    function do_upload()
    {
        foreach (

Попробуйте этот код.

Это работает нормально для меня

Вы должны каждый раз инициализировать библиотеку

[110]

Дальнейшее редактирование

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

CodeIgniter не поддерживает несколько файлов. Использование do_upload () в foreach не будет отличаться от его использования снаружи.

Вам нужно будет справиться с этим без помощи CodeIgniter. Вот пример https://github.com/woxxy/FoOlSlide/blob/master/application/controllers/admin/series.php#L331-370

https: / /stackoverflow.com/a/9846065/1171049

Это то, что сказано вами в комментариях:)

FILES as $index => $value) { if ($value['name'] != '') { $this->load->library('upload'); $this->upload->initialize($this->set_upload_options()); //upload the image if ( ! $this->upload->do_upload($index)) { $error['upload_error'] = $this->upload->display_errors("<span class='error'>", "</span>"); //load the view and the layout $this->load->view('pages/uploadform', $error); return FALSE; } else { $data[$key] = array('upload_data' => $this->upload->data()); $this->load->view('pages/uploadsuccess', $data[$key]); } } } } private function set_upload_options() { //upload an image options $config = array(); $config['upload_path'] = 'your upload path'; $config['allowed_types'] = 'gif|jpg|png'; return $config; }

Дальнейшее редактирование

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

CodeIgniter не поддерживает несколько файлов. Использование do_upload () в foreach не будет отличаться от его использования снаружи.

Вам нужно будет справиться с этим без помощи CodeIgniter. Вот пример https://github.com/woxxy/FoOlSlide/blob/master/application/controllers/admin/series.php#L331-370

https: / /stackoverflow.com/a/9846065/1171049

Это то, что сказано вами в комментариях:)

3
ответ дан 15.05.2020, 14:03
  • 1
    Спасибо! Была правильная подсказка. Дополнительный adjustmendwas, требуемый с VPATH = srcdri1:srcdir2:srcdir3:.. так простые условия как $(BUILDDIR)/%.o : %.c, работал бы снова, и это - все! – drahnr 24.09.2010, 01:37
<form method="post" action="<?php echo base_url('submit'); ?>" enctype="multipart/form-data">
    <input type="file" name="userfile[]" id="userfile"  multiple="" accept="image/*">
</form>

МОДЕЛЬ: FilesUpload

class FilesUpload extends CI_Model {

    public function setFiles()
    {
        $name_array = array();
        $count = count([110] 

МОДЕЛЬ: FilesUpload

[111]

КОНТРОЛЛЕР submit

class Submit extends CI_Controller {
    function __construct()
        {
        parent::__construct();
        $this->load->helper(array('html', 'url'));
        }

        public function index()
        {
        $this->load->model('FilesUpload');

        $data = $this->FilesUpload->setFiles();

        echo '<pre>';
        print_r($data);

    }
}
FILES['userfile']['size']); foreach ([110]

МОДЕЛЬ: FilesUpload

[111]

КОНТРОЛЛЕР submit

class Submit extends CI_Controller {
    function __construct()
        {
        parent::__construct();
        $this->load->helper(array('html', 'url'));
        }

        public function index()
        {
        $this->load->model('FilesUpload');

        $data = $this->FilesUpload->setFiles();

        echo '<pre>';
        print_r($data);

    }
}
FILES as $key => $value) for ($s = 0; $s <= $count - 1; $s++) { [110]

МОДЕЛЬ: FilesUpload

[111]

КОНТРОЛЛЕР submit

class Submit extends CI_Controller {
    function __construct()
        {
        parent::__construct();
        $this->load->helper(array('html', 'url'));
        }

        public function index()
        {
        $this->load->model('FilesUpload');

        $data = $this->FilesUpload->setFiles();

        echo '<pre>';
        print_r($data);

    }
}
FILES['userfile']['name'] = $value['name'][$s]; [110]

МОДЕЛЬ: FilesUpload

[111]

КОНТРОЛЛЕР submit

class Submit extends CI_Controller {
    function __construct()
        {
        parent::__construct();
        $this->load->helper(array('html', 'url'));
        }

        public function index()
        {
        $this->load->model('FilesUpload');

        $data = $this->FilesUpload->setFiles();

        echo '<pre>';
        print_r($data);

    }
}
FILES['userfile']['type'] = $value['type'][$s]; [110]

МОДЕЛЬ: FilesUpload

[111]

КОНТРОЛЛЕР submit

class Submit extends CI_Controller {
    function __construct()
        {
        parent::__construct();
        $this->load->helper(array('html', 'url'));
        }

        public function index()
        {
        $this->load->model('FilesUpload');

        $data = $this->FilesUpload->setFiles();

        echo '<pre>';
        print_r($data);

    }
}
FILES['userfile']['tmp_name'] = $value['tmp_name'][$s]; [110]

МОДЕЛЬ: FilesUpload

[111]

КОНТРОЛЛЕР submit

class Submit extends CI_Controller {
    function __construct()
        {
        parent::__construct();
        $this->load->helper(array('html', 'url'));
        }

        public function index()
        {
        $this->load->model('FilesUpload');

        $data = $this->FilesUpload->setFiles();

        echo '<pre>';
        print_r($data);

    }
}
FILES['userfile']['error'] = $value['error'][$s]; [110]

МОДЕЛЬ: FilesUpload

[111]

КОНТРОЛЛЕР submit

class Submit extends CI_Controller {
    function __construct()
        {
        parent::__construct();
        $this->load->helper(array('html', 'url'));
        }

        public function index()
        {
        $this->load->model('FilesUpload');

        $data = $this->FilesUpload->setFiles();

        echo '<pre>';
        print_r($data);

    }
}
FILES['userfile']['size'] = $value['size'][$s]; $config['upload_path'] = 'assets/product/'; $config['allowed_types'] = 'gif|jpg|png'; $config['max_size'] = '10000000'; $config['max_width'] = '51024'; $config['max_height'] = '5768'; $this->load->library('upload', $config); if (!$this->upload->do_upload()) { $data_error = array('msg' => $this->upload->display_errors()); var_dump($data_error); } else { $data = $this->upload->data(); } $name_array[] = $data['file_name']; } $names = implode(',', $name_array); return $names; } }

КОНТРОЛЛЕР submit

class Submit extends CI_Controller {
    function __construct()
        {
        parent::__construct();
        $this->load->helper(array('html', 'url'));
        }

        public function index()
        {
        $this->load->model('FilesUpload');

        $data = $this->FilesUpload->setFiles();

        echo '<pre>';
        print_r($data);

    }
}
0
ответ дан 15.05.2020, 14:03
  • 1
    Isn' t там отсутствие запятой? например, $ rwildcard= (подстановочный знак 1$, 2$)... – fstamour 20.11.2012, 11:37

Как предложил Карлос Ринконес; не бойтесь играть с суперглобалами.

$files = 

Как предложил Карлос Ринконес; не бойтесь играть с суперглобалами.

[110]FILES; for($i=0; $i<count($files['userfile']['name']); $i++) {

Как предложил Карлос Ринконес; не бойтесь играть с суперглобалами.

[110]FILES = array(); foreach( $files['userfile'] as $k=>$v ) {

Как предложил Карлос Ринконес; не бойтесь играть с суперглобалами.

[110]FILES['userfile'][$k] = $v[$i]; } $this->upload->do_upload('userfile') }
1
ответ дан 15.05.2020, 14:04
  • 1
    Посмотрите Andrzej Doyle' s ответ. Я полагаю, что это - хорошее объяснение. – jdmichal 23.02.2020, 01:08

другой бит кода здесь:

см .: https://github.com/stvnthomas/CodeIgniter-Multi-Upload

1
ответ дан 15.05.2020, 14:04
  • 1
    Вы don' t потребность new там. На самом деле я don' t думают, что это скомпилирует с ним. – Andrei Fierbinteanu 23.02.2020, 01:09

Сохраните, а затем переопределите переменную $ _FILES для всего, что вам нужно. возможно, не лучшее решение, но это сработало для меня.

function do_upload()
{

    $this->load->library('upload');
    $this->upload->initialize($this->set_upload_options());

    $quantFiles = count(

Сохраните, а затем переопределите переменную $ _FILES для всего, что вам нужно. возможно, не лучшее решение, но это сработало для меня.

[110]

}

отдельная функция для установки конфигурации.

private function set_upload_options()
{   
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'xml|pdf';
    $config['max_size'] = '10000';

    return $config;
}
FILES['userfile']['name']); for($i = 0; $i < $quantFiles ; $i++) { $arquivo[$i] = array ( 'userfile' => array ( 'name' =>

Сохраните, а затем переопределите переменную $ _FILES для всего, что вам нужно. возможно, не лучшее решение, но это сработало для меня.

[110]

}

отдельная функция для установки конфигурации.

private function set_upload_options()
{   
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'xml|pdf';
    $config['max_size'] = '10000';

    return $config;
}
FILES['userfile']['name'][$i], 'type' =>

Сохраните, а затем переопределите переменную $ _FILES для всего, что вам нужно. возможно, не лучшее решение, но это сработало для меня.

[110]

}

отдельная функция для установки конфигурации.

private function set_upload_options()
{   
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'xml|pdf';
    $config['max_size'] = '10000';

    return $config;
}
FILES['userfile']['type'][$i], 'tmp_name' =>

Сохраните, а затем переопределите переменную $ _FILES для всего, что вам нужно. возможно, не лучшее решение, но это сработало для меня.

[110]

}

отдельная функция для установки конфигурации.

private function set_upload_options()
{   
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'xml|pdf';
    $config['max_size'] = '10000';

    return $config;
}
FILES['userfile']['tmp_name'][$i], 'error' =>

Сохраните, а затем переопределите переменную $ _FILES для всего, что вам нужно. возможно, не лучшее решение, но это сработало для меня.

[110]

}

отдельная функция для установки конфигурации.

private function set_upload_options()
{   
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'xml|pdf';
    $config['max_size'] = '10000';

    return $config;
}
FILES['userfile']['error'][$i], 'size' =>

Сохраните, а затем переопределите переменную $ _FILES для всего, что вам нужно. возможно, не лучшее решение, но это сработало для меня.

[110]

}

отдельная функция для установки конфигурации.

private function set_upload_options()
{   
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'xml|pdf';
    $config['max_size'] = '10000';

    return $config;
}
FILES['userfile']['size'][$i] ) ); } for($i = 0; $i < $quantFiles ; $i++) {

Сохраните, а затем переопределите переменную $ _FILES для всего, что вам нужно. возможно, не лучшее решение, но это сработало для меня.

[110]

}

отдельная функция для установки конфигурации.

private function set_upload_options()
{   
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'xml|pdf';
    $config['max_size'] = '10000';

    return $config;
}
FILES = '';

Сохраните, а затем переопределите переменную $ _FILES для всего, что вам нужно. возможно, не лучшее решение, но это сработало для меня.

[110]

}

отдельная функция для установки конфигурации.

private function set_upload_options()
{   
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'xml|pdf';
    $config['max_size'] = '10000';

    return $config;
}
FILES = $arquivo[$i]; if ( ! $this->upload->do_upload()) { $error[$i] = array('error' => $this->upload->display_errors()); return FALSE; } else { $data[$i] = array('upload_data' => $this->upload->data()); var_dump($this->upload->data()); } } if(isset($error)) { $this->index($error); } else { $this->index($data); }

}

отдельная функция для установки конфигурации.

private function set_upload_options()
{   
    $config['upload_path'] = './uploads/';
    $config['allowed_types'] = 'xml|pdf';
    $config['max_size'] = '10000';

    return $config;
}
-1
ответ дан 15.05.2020, 14:05
  • 1
    Однако эхо действительно позволяет круглые скобки если there' s только аргумент – Juan Mendes 10.09.2010, 13:16
function imageUpload(){
            if ($this->input->post('submitImg') && !empty([110] 

FILES['files']['name'])) { $filesCount = count([110]

FILES['files']['name']); $userID = $this->session->userdata('userID'); $this->load->library('upload'); $config['upload_path'] = './userdp/'; $config['allowed_types'] = 'jpg|png|jpeg'; $config['max_size'] = '9184928'; $config['max_width'] = '5000'; $config['max_height'] = '5000'; $files = [110]

FILES; $cpt = count([110]

FILES['files']['name']); for($i = 0 ; $i < $cpt ; $i++){ [110]

FILES['files']['name']= $files['files']['name'][$i]; [110]

FILES['files']['type']= $files['files']['type'][$i]; [110]

FILES['files']['tmp_name']= $files['files']['tmp_name'][$i]; [110]

FILES['files']['error']= $files['files']['error'][$i]; [110]

FILES['files']['size']= $files['files']['size'][$i]; $imageName = 'image_'.$userID.'_'.rand().'.png'; $config['file_name'] = $imageName; $this->upload->initialize($config); if($this->upload->do_upload('files')){ $fileData = $this->upload->data(); //it return $uploadData[$i]['picturePath'] = $fileData['file_name']; } } if (!empty($uploadData)) { $imgInsert = $this->insert_model->insertImg($uploadData); $statusMsg = $imgInsert?'Files uploaded successfully.':'Some problem occurred, please try again.'; $this->session->set_flashdata('statusMsg',$statusMsg); redirect('home/user_dash'); } } else{ redirect('home/user_dash'); } }

0
ответ дан 15.05.2020, 14:05
  • 1
    +1 для хорошего объяснения, почему. Мне жаль, что нельзя было отметить два ответа, корректные в ТАК:) – jdmichal 23.02.2020, 01:07

Я недавно работал над этим. Попробуйте эту функцию:

/**
 * @return array an array of your files uploaded.
 */
private function _upload_files($field='userfile'){
    $files = array();
    foreach( 

Я недавно работал над этим. Попробуйте эту функцию:

[110]

в вашем случае:

<input type="file" multiple name="images[]" size="20" />

или

<input type="file" name="images[]">
<input type="file" name="images[]">
<input type="file" name="images[]">

в контроллере:

public function do_upload(){
    $config['upload_path'] = './Images/';
    $config['allowed_types'] = 'gif|jpg|png';
    //...

    $this->load->library('upload',$config);

    if (

Я недавно работал над этим. Попробуйте эту функцию:

[110]

в вашем случае:

[111]

или

[112]

в контроллере:

[113]

Некоторые Базовая ссылка из руководства по PHP: Загрузка PHP-файла

FILES['images']) { $images= $this->_upload_files('images'); print_r($images); } }

Некоторые Базовая ссылка из руководства по PHP: Загрузка PHP-файла

FILES[$field] as $key => $all ) foreach( $all as $i => $val ) $files[$i][$key] = $val; $files_uploaded = array(); for ($i=0; $i < count($files); $i++) {

Я недавно работал над этим. Попробуйте эту функцию:

[110]

в вашем случае:

<input type="file" multiple name="images[]" size="20" />

или

<input type="file" name="images[]">
<input type="file" name="images[]">
<input type="file" name="images[]">

в контроллере:

public function do_upload(){
    $config['upload_path'] = './Images/';
    $config['allowed_types'] = 'gif|jpg|png';
    //...

    $this->load->library('upload',$config);

    if (

Я недавно работал над этим. Попробуйте эту функцию:

[110]

в вашем случае:

[111]

или

[112]

в контроллере:

[113]

Некоторые Базовая ссылка из руководства по PHP: Загрузка PHP-файла

FILES['images']) { $images= $this->_upload_files('images'); print_r($images); } }

Некоторые Базовая ссылка из руководства по PHP: Загрузка PHP-файла

FILES[$field] = $files[$i]; if ($this->upload->do_upload($field)) $files_uploaded[$i] = $this->upload->data($files); else $files_uploaded[$i] = null; } return $files_uploaded; }

в вашем случае:

<input type="file" multiple name="images[]" size="20" />

или

<input type="file" name="images[]">
<input type="file" name="images[]">
<input type="file" name="images[]">

в контроллере:

public function do_upload(){
    $config['upload_path'] = './Images/';
    $config['allowed_types'] = 'gif|jpg|png';
    //...

    $this->load->library('upload',$config);

    if (

Я недавно работал над этим. Попробуйте эту функцию:

[110]

в вашем случае:

[111]

или

[112]

в контроллере:

[113]

Некоторые Базовая ссылка из руководства по PHP: Загрузка PHP-файла

FILES['images']) { $images= $this->_upload_files('images'); print_r($images); } }

Некоторые Базовая ссылка из руководства по PHP: Загрузка PHP-файла

-1
ответ дан 15.05.2020, 14:06
  • 1
    @Pacerier хорошо хорошо! Soooorrryyyy. Я зафиксировал его, мое плохое. – Mr.Web 09.12.2015, 08:14
function UploadHotelImage(){
        $data = array();
        if($this->input->post('fileSubmit') && !empty([110] 

Используйте этот код для загрузки нескольких изображений в CI ....

FILES['userFiles']['name'])){ $filesCount = count([110]

Используйте этот код для загрузки нескольких изображений в CI ....

FILES['userFiles']['name']); for($i = 0; $i < $filesCount; $i++){ [110]

Используйте этот код для загрузки нескольких изображений в CI ....

FILES['userFile']['name'] = [110]

Используйте этот код для загрузки нескольких изображений в CI ....

FILES['userFiles']['name'][$i]; [110]

Используйте этот код для загрузки нескольких изображений в CI ....

FILES['userFile']['type'] = [110]

Используйте этот код для загрузки нескольких изображений в CI ....

FILES['userFiles']['type'][$i]; [110]

Используйте этот код для загрузки нескольких изображений в CI ....

FILES['userFile']['tmp_name'] = [110]

Используйте этот код для загрузки нескольких изображений в CI ....

FILES['userFiles']['tmp_name'][$i]; [110]

Используйте этот код для загрузки нескольких изображений в CI ....

FILES['userFile']['error'] = [110]

Используйте этот код для загрузки нескольких изображений в CI ....

FILES['userFiles']['error'][$i]; [110]

Используйте этот код для загрузки нескольких изображений в CI ....

FILES['userFile']['size'] = [110]

Используйте этот код для загрузки нескольких изображений в CI ....

FILES['userFiles']['size'][$i]; $uploadPath = 'uploads/files/'; $config['upload_path'] = $uploadPath; $config['allowed_types'] = 'gif|jpg|png'; $this->load->library('upload', $config); $this->upload->initialize($config); if($this->upload->do_upload('userFile')){ $fileData = $this->upload->data(); $uploadData[$i]['file_name'] = $fileData['file_name']; $uploadData[$i]['created'] = date("Y-m-d H:i:s"); $uploadData[$i]['modified'] = date("Y-m-d H:i:s"); } } if(!empty($uploadData)){ //Insert file information into the database $insert = $this->file->insert($uploadData); $statusMsg = $insert?'Files uploaded successfully.':'Some problem occurred, please try again.'; $this->session->set_flashdata('statusMsg',$statusMsg); } } //Get files data from database $data['files'] = $this->file->getRows(); //Pass the files data to view $this->load->view('upload_files/index', $data); } } //----- Model-----------// public function insertHotelImage($data = array()){ $insert = $this->db->insert_batch('tbl_hotel_images',$data); return $insert?true:false; }

Используйте этот код для загрузки нескольких изображений в CI ....

0
ответ дан 15.05.2020, 14:07
  • 1
    Я знаю компилятор won' t смотрят на вызов метода для контекста при выведении, но I' m не уверенный, почему. По крайней мере, для частного или final методы, должно быть возможно сделать вывод. – Hank Gay 23.02.2020, 01:08
        // Change [110]FILES to new vars and loop them
        foreach([110]FILES['files'] as $key=>$val)
        {
            $i = 1;
            foreach($val as $v)
            {
                $field_name = "file_".$i;
                [110]FILES[$field_name][$key] = $v;
                $i++;   
            }
        }
        // Unset the useless one ;)
        unset([110]FILES['files']);

        // Put each errors and upload data to an array
        $error = array();
        $success = array();

        // main action to upload each file
        foreach([110]FILES as $field_name => $file)
        {
            if ( ! $this->upload->do_upload($field_name))
            {
                echo ' failed ';
            }else{
                echo ' success ';
            }
        }
0
ответ дан 15.05.2020, 14:07
  • 1
    @Hank: или static методы, которые разрешены во время компиляции также. Все еще - это doesn' t, который я предполагаю, является основным моментом. – Andrzej Doyle 23.02.2020, 01:08

Все опубликованные файлы будут входить в переменную $ _FILES, для использования библиотеки загрузки codeigniter нам нужно указать имя поля, которое мы используем для загрузки (по умолчанию это будет 'userfile'), поэтому мы получаем все опубликованные файлы и создаем другой массив файлов, который создает наше собственное имя для каждого файла и присваивает это имя функции doignup библиотеки библиотеки codeigniter.

if(!empty(

Все опубликованные файлы будут входить в переменную $ _FILES, для использования библиотеки загрузки codeigniter нам нужно указать имя поля, которое мы используем для загрузки (по умолчанию это будет 'userfile'), поэтому мы получаем все опубликованные файлы и создаем другой массив файлов, который создает наше собственное имя для каждого файла и присваивает это имя функции doignup библиотеки библиотеки codeigniter.

[110]FILES)){ $j = 1; foreach(

Все опубликованные файлы будут входить в переменную $ _FILES, для использования библиотеки загрузки codeigniter нам нужно указать имя поля, которое мы используем для загрузки (по умолчанию это будет 'userfile'), поэтому мы получаем все опубликованные файлы и создаем другой массив файлов, который создает наше собственное имя для каждого файла и присваивает это имя функции doignup библиотеки библиотеки codeigniter.

[110]FILES as $filekey=>$fileattachments){ foreach($fileattachments as $key=>$val){ if(is_array($val)){ $i = 1; foreach($val as $v){ $field_name = "multiple_".$filekey."_".$i;

Все опубликованные файлы будут входить в переменную $ _FILES, для использования библиотеки загрузки codeigniter нам нужно указать имя поля, которое мы используем для загрузки (по умолчанию это будет 'userfile'), поэтому мы получаем все опубликованные файлы и создаем другой массив файлов, который создает наше собственное имя для каждого файла и присваивает это имя функции doignup библиотеки библиотеки codeigniter.

[110]FILES[$field_name][$key] = $v; $i++; } }else{ $field_name = "single_".$filekey."_".$j;

Все опубликованные файлы будут входить в переменную $ _FILES, для использования библиотеки загрузки codeigniter нам нужно указать имя поля, которое мы используем для загрузки (по умолчанию это будет 'userfile'), поэтому мы получаем все опубликованные файлы и создаем другой массив файлов, который создает наше собственное имя для каждого файла и присваивает это имя функции doignup библиотеки библиотеки codeigniter.

[110]FILES[$field_name] = $fileattachments; $j++; break; } } // Unset the useless one unset(

Все опубликованные файлы будут входить в переменную $ _FILES, для использования библиотеки загрузки codeigniter нам нужно указать имя поля, которое мы используем для загрузки (по умолчанию это будет 'userfile'), поэтому мы получаем все опубликованные файлы и создаем другой массив файлов, который создает наше собственное имя для каждого файла и присваивает это имя функции doignup библиотеки библиотеки codeigniter.

[110]FILES[$filekey]); } foreach(

Все опубликованные файлы будут входить в переменную $ _FILES, для использования библиотеки загрузки codeigniter нам нужно указать имя поля, которое мы используем для загрузки (по умолчанию это будет 'userfile'), поэтому мы получаем все опубликованные файлы и создаем другой массив файлов, который создает наше собственное имя для каждого файла и присваивает это имя функции doignup библиотеки библиотеки codeigniter.

[110]FILES as $field_name => $file){ if(isset($file['error']) && $file['error']==0){ $config['upload_path'] = [upload_path]; $config['allowed_types'] = [allowed_types]; $config['max_size'] = 100; $config['max_width'] = 1024; $config['max_height'] = 768; $this->load->library('upload', $config); $this->upload->initialize($config); if ( ! $this->upload->do_upload($field_name)){ $error = array('error' => $this->upload->display_errors()); echo "Error Message : ". $error['error']; }else{ $data = $this->upload->data(); echo "Uploaded FileName : ".$data['file_name']; // Code for insert into database } } } }
0
ответ дан 15.05.2020, 14:08
  • 1
    " я подозреваю, что это вызвано тем, что методы диспетчеризируются динамично в зависимости от класса среды выполнения объекта владения, так во время компиляции... Вы can' t на самом деле знают наверняка, чем класс параметра метода будет и следовательно can' t выводят " В этом случае, почему doesn' t версия с работой броска типа? – EricS 23.02.2020, 01:09

Я использовал приведенный ниже код в моей пользовательской библиотеке.
. Вызов с моего контроллера, как показано ниже:

function __construct() {<br />
   &nbsp;&nbsp;&nbsp; parent::__construct();<br />
   &nbsp;&nbsp;&nbsp;   $this->load->library('CommonMethods');<br />
}<br />

$config = array();<br />
$config['upload_path'] = 'assets/upload/images/';<br />
$config['allowed_types'] = 'gif|jpg|png|jpeg';<br />
$config['max_width'] = 150;<br />
$config['max_height'] = 150;<br />
$config['encrypt_name'] = TRUE;<br />
$config['overwrite'] = FALSE;<br />

// upload multiplefiles<br />
$fileUploadResponse = $this->commonmethods->do_upload_multiple_files('profile_picture', $config);

/**
 * do_upload_multiple_files - Multiple Methods
 * @param type $fieldName
 * @param type $options
 * @return type
 */
public function do_upload_multiple_files($fieldName, $options) {

    $response = array();
    $files = 

Я использовал приведенный ниже код в моей пользовательской библиотеке.
. Вызов с моего контроллера, как показано ниже:

[110]
[111]FILES; $cpt = count(

Я использовал приведенный ниже код в моей пользовательской библиотеке.
. Вызов с моего контроллера, как показано ниже:

[110]
[111]FILES[$fieldName]['name']); for($i=0; $i<$cpt; $i++) {

Я использовал приведенный ниже код в моей пользовательской библиотеке.
. Вызов с моего контроллера, как показано ниже:

[110]
[111]FILES[$fieldName]['name']= $files[$fieldName]['name'][$i];

Я использовал приведенный ниже код в моей пользовательской библиотеке.
. Вызов с моего контроллера, как показано ниже:

[110]
[111]FILES[$fieldName]['type']= $files[$fieldName]['type'][$i];

Я использовал приведенный ниже код в моей пользовательской библиотеке.
. Вызов с моего контроллера, как показано ниже:

[110]
[111]FILES[$fieldName]['tmp_name']= $files[$fieldName]['tmp_name'][$i];

Я использовал приведенный ниже код в моей пользовательской библиотеке.
. Вызов с моего контроллера, как показано ниже:

[110]
[111]FILES[$fieldName]['error']= $files[$fieldName]['error'][$i];

Я использовал приведенный ниже код в моей пользовательской библиотеке.
. Вызов с моего контроллера, как показано ниже:

[110]
[111]FILES[$fieldName]['size']= $files[$fieldName]['size'][$i]; $this->CI->load->library('upload'); $this->CI->upload->initialize($options); //upload the image if (!$this->CI->upload->do_upload($fieldName)) { $response['erros'][] = $this->CI->upload->display_errors(); } else { $response['result'][] = $this->CI->upload->data(); } } return $response; }
0
ответ дан 15.05.2020, 14:09
  • 1
    " я подозреваю, что это вызвано тем, что методы диспетчеризируются динамично в зависимости от класса среды выполнения владения object". I' m не уверенный, если it' s то же самое, но какая версия перегруженного метода звонить определяется во время компиляции: ampersand.space/blog/2007/1/12/java-overload – Kip 23.02.2020, 01:09
    public function imageupload() 
    {

      $count = count([110]FILES['userfile']['size']);

  $config['upload_path'] = './uploads/';
  $config['allowed_types'] = 'gif|jpg|png|bmp';
  $config['max_size']   = '0';
  $config['max_width']  = '0';
  $config['max_height']  = '0';

  $config['image_library'] = 'gd2';
  $config['create_thumb'] = TRUE;
  $config['maintain_ratio'] = FALSE;
  $config['width'] = 50;
  $config['height'] = 50;

  foreach([110]FILES as $key=>$value)
  { 
     for($s=0; $s<=$count-1; $s++)
     {
     [110]FILES['userfile']['name']=$value['name'][$s];
     [110]FILES['userfile']['type']    = $value['type'][$s];
     [110]FILES['userfile']['tmp_name'] = $value['tmp_name'][$s]; 
     [110]FILES['userfile']['error']       = $value['error'][$s];
     [110]FILES['userfile']['size']    = $value['size'][$s];  

         $this->load->library('upload', $config);

         if ($this->upload->do_upload('userfile'))
         {
           $data['userfile'][$i] = $this->upload->data();
       $full_path = $data['userfile']['full_path'];


           $config['source_image'] = $full_path;
           $config['new_image'] = './uploads/resiezedImage';

           $this->load->library('image_lib', $config);
           $this->image_lib->resize(); 
           $this->image_lib->clear();

         }
         else
         {
           $data['upload_errors'][$i] = $this->upload->display_errors();
         } 
     }
  }
}
0
ответ дан 15.05.2020, 14:09
  • 1
    Я не знал об этом syntex, Спасибо! Но я все еще задаюсь вопросом, почему тот синтаксис не необходим в переменном присвоении. – Karl von L 23.02.2020, 01:09

Вы должны использовать эту библиотеку для мультизагрузки в CI. https://github.com/stvnthomas/CodeIgniter-Multi-Upload

. Установка Просто скопируйте файл MY_Upload.php в свой каталог библиотеки приложений.

Использование: функция test_up в контроллере

public function test_up(){
if($this->input->post('submit')){
    $path = './public/test_upload/';
    $this->load->library('upload');
    $this->upload->initialize(array(
        "upload_path"=>$path,
        "allowed_types"=>"*"
    ));
    if($this->upload->do_multi_upload("myfile")){
        echo '<pre>';
        print_r($this->upload->get_multi_upload_data());
        echo '</pre>';
    }
}else{
    $this->load->view('test/upload_view');
}

}

upload_view.php в папке apps / view / test

<form action="" method="post" enctype="multipart/form-data">
<input type="file" name="myfile[]" id="myfile" multiple>
<input type="submit" name="submit" id="submit" value="submit"/>
4
ответ дан 15.05.2020, 14:10
  • 1
    только проблема с командой находки, это, портят на сборке окон, потому что это принимает значение по умолчанию к использованию окон, находят команду. – SashiOno 22.07.2015, 12:56

Теги

Похожие вопросы