我在视图中有以下代码:
if (isset($stockists)) {
$id = $stockists->ID;
echo form_open_multipart($system_settings['admin_folder'].'/stockists/form/'.$id);
}
else {
echo form_open_multipart($system_settings['admin_folder'].'/stockists/form/');
}
<?php echo "<input type='file' name='userfile' size='20' />"; ?>
其中有很多其他文本输入字段在提交时发送到数据库。文件加载器是我感兴趣的。
在我的控制器功能中,如何在提交后检查上传器中是否存在文件?
以下重演错误:
$image = ($_FILES['userfile']);
如果上传者中存在文件,我需要检查条件语句。例如:
if ($_FILES['userfile']) {
//do
}
但这种方法不起作用。
答案 0 :(得分:2)
$_FILES['userfile']
不是布尔值。
if (strlen($_FILES['userfile']['tmp_name']) > 0) {
// Yes, is uploaded
}
在数组中,您还error
:
echo $_FILES['userfile']['error'];
CodeIgniter有一个上传类,可以为您完成工作。
CodeIgniter的文件上传类允许上传文件。您可以设置各种首选项,限制文件的类型和大小。
下面是CodeIgniter文档中的示例:
<?php
class Upload extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url'));
}
function index()
{
$this->load->view('upload_form', array('error' => ' ' ));
}
function do_upload()
{
$config['upload_path'] = './uploads/';
$config['allowed_types'] = 'gif|jpg|png';
$config['max_size'] = '100';
$config['max_width'] = '1024';
$config['max_height'] = '768';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload())
{
$error = array('error' => $this->upload->display_errors());
$this->load->view('upload_form', $error);
}
else
{
$data = array('upload_data' => $this->upload->data());
$this->load->view('upload_success', $data);
}
}
}
?>
有关完整示例,请参阅文档:CI File Upload Class