如何在codeigniter中生成文件字段

时间:2011-06-16 12:44:27

标签: codeigniter

Codeigniter表单验证支持post数组验证,它不支持$ _FILE数组进行验证。

我想根据需要验证文件字段,如此规则

$ rules ['file'] =“trim | required”;

请帮助我如何根据需要创建文件字段。

3 个答案:

答案 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');