【问题标题】:How make file field required in codeigniter如何在codeigniter中制作文件字段
【发布时间】:2011-06-16 12:44:27
【问题描述】:

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

我想像这条规则一样根据需要验证文件字段

$rules['file'] = "trim|required";

请帮助我如何根据需要制作文件字段。

【问题讨论】:

标签: codeigniter


【解决方案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

希望这会对您有所帮助,如果有任何问题,请告诉我们。请粘贴代码...

谢谢

【讨论】:

  • 这个验证由上传类完成。我希望提交表单上需要的文件字段就像其他字段一样,例如名称、描述等。
【解决方案2】:

其实你可以用$_FILES数组来检查,我在CI里已经做过多次了?

    if (isset($_FILES)) 
    {   

【讨论】:

    【解决方案3】:

    使用它,您可以将文件字段设为必填

    $this->form_validation->set_rules('userfile', 'Document', 'required');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-02
      • 1970-01-01
      • 1970-01-01
      • 2018-11-06
      • 2013-04-22
      • 1970-01-01
      • 1970-01-01
      • 2011-07-17
      相关资源
      最近更新 更多