I am trying to upload multiple files using ajax in codeigniter. my ajax post is working fine, but I don't know how to get the message files in the controller.
I tried this way but did not work. please help. Thanks.
HTML
<form method="post" name="upload_files" action="<?php echo base_url(); ?>home/upload_files" id="form_files" enctype="multipart/form-data">
<h4 style="float: left">Add files. (file types .png, .jpeg, .dwg, .pdf, jpg) max: 10Mb <span style="color:red;" id ="err_type"> * </span></h4>
<div class=from-section>
<div class="row">
<div class="span4" id="image" >
<div class="cart-total" id="clone_image" data-provides="fileupload">
<div class="form-group has-success has-feedback">
<input class="form-control" type="file" name="files[]" accept="image/*" />
</div>
</div>
</div>
</div>
</div>
<div class="cart-total">
<a id="another_image" class="btn btn-default" style="height: 45px;padding: 12px 12px; margin-right: 10px; ">+ Add More Files</a>
<a id="submit_files" class="rx-bottom" >Submit Files</a>
</div>
</form>
AJAKS
<script type="text/javascript">
$('#submit_files').click(function() {
var formData = new FormData($('#form_files')[0]);
$.ajax({
url: "<?php echo base_url('home/upload_files/'); ?>",
type: "POST",
data: formData,
mimeType: "multipart/form-data",
processData: false,
contentType: false,
success: function(res) {
console.log("success");
},
error: function(res) {
console.log("error");
}
});
});
</script>
My console logs a successful message
CONTROLLER
public function upload_files(){
$order_id = 123;
if(!$order_id){
redirect('home/instant_quote', 'refresh');
}else{
$this->load->library('upload');
$files = $_FILES;
if($files){
for( $i = 1; $i < 20; $i++) {
$config = array();
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'jpg|jpeg|png|pdf|dwg|zip';
$config['max_size'] = '11000';
$config['file_name'] = 'order_'.$order_id.'_'.$i;
$config['overwrite'] = false;
$this->upload->initialize($config);
$this->upload->do_upload('files'.$i);
$image_data = array('upload_data' => $this->upload->data());
if($image_data["upload_data"]["file_size"]){
$inserted['order'] = $i ;
$inserted['name'] = $image_data["upload_data"]["file_name"];
$inserted['extension'] = $image_data["upload_data"]["file_ext"];
$inserted['type'] = $image_data["upload_data"]["file_type"];
$inserted['size'] = $image_data["upload_data"]["file_size"];
$prop = $this->home->insert_files($inserted);
}
}
}else{
$this->load->view('comman/header.php');
$this->load->view('home/add_files.php');
$this->load->view('comman/footer.php');
}
}
}
This is what I see when I register form data

source
share