CodeIgniter - загрузка нескольких файлов с одного входа

Я пытаюсь загрузить несколько файлов одновременно с одного входа:

<input type="file" name="form-image[]" id="form-image" multiple="true" />

Который сам без CodeIgniter работает нормально. В моей попытке сделать то же самое с помощником файла CodeIgniters; Я получаю сообщение об ошибке ( is_uploaded_file () ожидает, что параметр 1 будет строкой, задан массив), что указывает на то, что я делаю что-то не так, или CodeIgniter просто не поддерживает несколько файлов?

Мой ошибочный код до сих пор:

//Iterate through each file uploaded
for ($i = 0; isset($_FILES['form-image']['name'][$i]); $i++) {

   //Fix the settings
   $config['upload_path'] = "./static/vimmel/";
   $config['file_name'] = time() . rand(1,988);
   $config['allowed_types'] = 'gif|jpg|png';
   $config['max_size']  = '1024';
   $config['max_width']  = '1024';
   $config['max_height']  = '768';
   $this->load->library('upload', $config);

   //Do the upload
   $this->upload->do_upload("form-image")
}

Обратите внимание, что я отредактировал всю обработку ошибок и тому подобное. Также обратите внимание, что я не использую is_uploaded_file() функция.

Ценю всю помощь и предложения. Благодарю.

2 ответа

Решение

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

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

Я использую расширение библиотеки Upload, которое включает в себя функцию do_multiple_upload(), принимающую массив файлов

https://github.com/nicdev/CodeIgniter-Multiple-File-Upload

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

Надеюсь, это кому-нибудь поможет...

Другие вопросы по тегам