Codeigniter表单验证支持post数组验证,它不支持$ _FILE数组进行验证。
我想根据需要验证文件字段,如此规则
$ rules ['file'] =“trim | required”;
请帮助我如何根据需要创建文件字段。
答案 0 :(得分:1)
希望表单中的html代码如下:
<form method="post" action="">
<div class="form_label">
<label for="form_field_name">Select : </label>
<input type="file" name="form_field_name" />
</div>
<div class="message"><?php echo (isset($message['error'])) ? '<div class="error">' . $message['error'] . '</div>' : (isset($message['success']) ? '<div class="success">' . $message['success'] . '</div>' : ''); ?>
</form>
让我们去codeigniter控制器:
<?php
class My_upload extends CI_Controller
{
function __construct()
{
parent::__construct();
}
function upload_me()
{
$data['message'] = array();
if(isset($_POST['submit'])) {
$this->load->model('my_upload_model', 'umodel');
$data['message'] = $this->umodel->upload_me();
}
$this->load->view('file_upload');
}
}
?>
控制器上没有文件验证,让我们在模型中执行:
<?php
class My_upload_model extends CI_Model
{
function __construct()
{
parent::__construct();
}
function upload_me()
{
// file upload configuration start //
$config['file_upload_path'] = FCPATH . 'my_file_directory' . DIRECTORY_SEPARATOR . 'sub_directory' . DIRECTORY_SEPARATOR;
$config['allowed_extensions'] = 'gif|jpg|jpeg|png|bmp';
$this->load->library('upload', $config);
if ( ! $this->upload->do_upload('form_field_name')) {
return array('error' => $this->upload->display_errors());
} else {
return array('success' => 'File is uploaded successfully.');
}
// end file uploading //
}
}
?>
您可以根据需要添加更多配置。更多http://codeigniter.com/user_guide/libraries/file_uploading.html
希望这会对你有所帮助,如果有的话,请告诉我们。请粘贴代码......
由于
答案 1 :(得分:0)
实际上你可以使用$ _FILES数组来检查,我在CI中多次这样做了吗?
if (isset($_FILES))
{
答案 2 :(得分:0)
使用此功能,您可以设置文件字段
$this->form_validation->set_rules('userfile', 'Document', 'required');