【发布时间】:2018-01-24 16:22:06
【问题描述】:
我正在尝试使用 CodeIgniter “上传”库进行文件上传,但每次我尝试上传内容时都会收到此错误:
“您没有指定任何允许的文件类型。您尝试上传的文件类型不被允许。”
我在 StackOverflow 上搜索并尝试了许多解决方案,但没有一个有效,这是我的代码:
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()) 结果
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] => )
我正在自动加载库。我的 CodeIgniter 版本是 3.1.6。我也尝试过使用 form_open_multipart();在视图中,但没有任何变化。
我在 Windows 10(PHP 版本 7.2.0)上使用 XAMPP 7.2.0。
【问题讨论】:
标签: php codeigniter file-upload