Я пытаюсь загрузить сразу несколько файлов с одного входа :
<input type="file" name="form-image[]" id="form-image" multiple="true" />
Которая сама без CodeIgniter работает нормально. В моей попытке сделать то же самое с помощью CodeIgniters file helper; Я получаю сообщение об ошибке ( 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()
.
Оцените всю помощь и предложения. Благодарю.
CodeIgniter не поддерживает несколько файлов. Использование do_upload () в foreach не будет отличаться от того, как использовать его снаружи.
Вам нужно будет справиться с этим без помощи CodeIgniter. Ниже приведен пример https://github.com/woxxy/FoOlSlide/blob/master/application/controllers/admin/series.php#L331-370
Я использую расширение библиотеки загрузки, которое включает функцию do_multiple_upload (), принимающую массив файлов
https://github.com/nicdev/CodeIgniter-Multiple-File-Upload
В нем отсутствует некоторое управление ошибками (например, если один из ваших файлов не имеет разрешенного расширения, вся загрузка не выполняется), но вы можете изменить возвращаемые значения для продолжения в цикле.
Надеюсь, это поможет кому-то …