Это расширение класса CI_Upload, который я изменил для загрузки нескольких файлов, просто скопируйте его в файл MY_Upload.php. Это также делает каталог также.
http://pastebin.com/g9J6RxW1
Тогда все, что вам нужно сделать в функции контроллера, это расположить ваши файлы в массиве, где имя поля и ключ - это ключи массива, а config - данные. В вашем случае что-то вроде этого:
$project_files['files'][0] = array(
'upload_path' => './uploads/'.$projectName.'/',
'max_size' => 0,
'allowed_types' => 'xml|etl',
'overwrite' => TRUE,
'remove_spaces' => TRUE,
);
$project_files['files'][1] = array(
'upload_path' => './uploads/'.$projectName.'/',
'max_size' => 0,
'allowed_types' => 'xml|etl',
'overwrite' => TRUE,
'remove_spaces' => TRUE,
);
Если все конфиги файлов одинаковы, просто сделайте цикл for, чтобы настроить это, он также будет принимать «именованные ключи», т.е. $project_files['files']['file_key']
.
тогда просто позвоните:
if($this->upload->upload_files($project_files)){/*all files uploaded successfully*/}