I'm attempting to do a File Upload using the CodeIgniter "upload" library, but everytime I try to upload something I get this error:
"You have not specified any allowed file types. The filetype you are attempting to upload is not allowed."
I've searched and tried many solutions here on StackOverflow but none of them are working, here's my code:
views/screenshots.php
<form method="post" enctype="multipart/form-data" action="{baseurl}/upload/screenshot">
<input type="hidden" name="serverid" value="{id}" />
<label>Carica uno Screenshot</label>
<br />
<label class="custom-file" id="customFile" for="screenshot">
<input type="file" class="custom-file-input" id="screenshot" name="screenshot" aria-describedby="fileHelp">
<span class="custom-file-control form-control-file"></span>
</label>
<br />
<button type="submit" class="btn btn-secondary">Carica file</button>
</form>
config/upload.php
$config['allowed_types'] = '*';
$config['max_size'] = 1024 * 8;
$config['encrypt_name'] = TRUE;
controllers/upload.php
public function screenshot()
{
/* Upload library config */
$config['upload_path'] = './files/screenshots/';
$this->upload->initialize($config);
/* Upload and check if it's failed */
if (!$this->upload->do_upload('screenshot')) {
$error = array('error' => $this->upload->display_errors());
echo json_encode($error);
print_r($this->upload->data());
} else {
/* Making an array with all the data of the upload */
$upload_data = $this->upload->data();
/* Making an array to pass to the Screenshot_model */
$screenshot = array(
'id_server' => $this->input->post('serverid'),
'id_user' => $this->session->userdata('userid'),
'image_url' => $upload_data('file_name')
);
/* Saving the Screenshot info into the database */
$this->Screenshot_model->addScreen($screenshot);
/* Redirect to Server edit */
redirect('/screenshots/'.$screenshot['id_server']);
}
}
print_r($this->upload->data()) result
Array ( [file_name] => download.png [file_type] => image/png [file_path] => C:/xampp/htdocs/gameparade/files/screenshots/ [full_path] => C:/xampp/htdocs/gameparade/files/screenshots/download.png [raw_name] => download [orig_name] => [client_name] => download.png [file_ext] => .png [file_size] => 1806 [is_image] => 1 [image_width] => [image_height] => [image_type] => [image_size_str] => )
I'm autoloading the library. My version of CodeIgniter is 3.1.6. I've also tried to use form_open_multipart(); in the view, but nothing changes.
I'm using XAMPP 7.2.0 on Windows 10 (PHP Version 7.2.0).