I always get the error message "You did not select a file to upload" from $this->upload->display_errors());
Here is my script:
$path = './assets/img/objects/';
$data = [];
$count = count(array_filter($_FILES['file']['name']));
for($i=0; $i<$count; $i++){
if(!empty($_FILES['file']['name'][$i])){
$_FILES['file']['name'] = $_FILES['file']['name'][$i];
$_FILES['file']['type'] = $_FILES['file']['type'][$i];
$_FILES['file']['tmp_name'] = $_FILES['file']['tmp_name'][$i];
$_FILES['file']['error'] = $_FILES['file']['error'][$i];
$_FILES['file']['size'] = $_FILES['file']['size'][$i];
$config['upload_path'] = $path;
$config['allowed_types'] = 'jpg|jpeg|png|gif';
$config['max_size'] = '5000';
$config['file_name'] = $_FILES['file']['name'];
$this->load->library('upload');
$this->upload->initialize($config);
if($this->upload->do_upload('file')){
$fileNames[] = $this->upload->file_name;
$uploadData = $this->upload->data();
$filename = $uploadData['file_name'];
$data['totalFiles'][] = $filename;
}else{
$error = array('error' => $this->upload->display_errors());
print_r($error);
}
}
}
I am using the multiform option like this:
<input class="btn btn-xl" type="file" name="file[]" multiple="" />
Any idea why it doesn't recognize the file in do_upload?
Bests, Yanick
Solution
I fixed the problem like this:
$_FILES['f']['name'] = $_FILES['file']['name'][$i];
$_FILES['f']['type'] = $_FILES['file']['type'][$i];
$_FILES['f']['tmp_name'] = $_FILES['file']['tmp_name'][$i];
$_FILES['f']['error'] = $_FILES['file']['error'][$i];
$_FILES['f']['size'] = $_FILES['file']['size'][$i];
$config['upload_path'] = $path;
$config['allowed_types'] = 'jpg|jpeg|png|gif';
$config['max_size'] = '5000';
$config['file_name'] = $_FILES['file']['name'][$i];
$this->load->library('upload', $config);
if($this->upload->do_upload('f')){
$fileNames[] = $this->upload->file_name;
$uploadData = $this->upload->data();
$filename = $uploadData['file_name'];
$data['totalFiles'][] = $filename;
}else{
$error = array('error' => $this->upload->display_errors());
$data['error'] = $error;
}
Maybe this helps somebody.
Many thanks to the community for the help!