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
В нем отсутствует некоторое управление ошибками (например, если один из ваших файлов не имеет допустимого расширения, при котором происходит полная загрузка), но вы можете изменить возврат для продолжения в цикле.
Надеюсь, это кому-нибудь поможет...