繁体   English   中英

使用文件上传进行表单验证

[英]Form validation With File Upload

我正在上载文件的表格。

我需要验证表格

这是我的验证码

   $this->form_validation->set_rules('career_experience','Experience','trim|required|xss_clean');
   $this->form_validation->set_rules('career_salary','Salary','trim|required|xss_clean');
   $this->form_validation->set_rules('career_resume','Resume','callback_check_file');

function check_file($str)
{
   if($str=="")
        {
             $this->form_validation->set_message('check_file', 'Please Upload A Resume');
             return false;
        }
        else if($str!="")
        {
             $ext = array();
             $ext = explode(".",$str);
             $allowed_ext = array("doc","pdf","pdf","docx","txt");
             if(isset($ext[1]) && $ext[1]!="")
                {
                    if (in_array($ext[1], $allowed_ext)) 
                    {
                        return true;
                    }
                    else
                    {
                        $this->form_validation->set_message('check_file', 'The File Is Not Supported');
                        return false;
                    }
                }
        }

}

现在的问题是,career_resume的验证消息总是给我

"Please upload a resume";

因此,这意味着即使我选择一个文件,它也将$ str声明为空字符串或“”字符串;

为什么会这样??

不需要$str = $_FILES['name'];

现在,职业简历是input =“ file”

这是表格

<form name="career_form" id="career_form" method="post"
            enctype="multipart/form-data" action="<?php echo site_url('pages/send_career_mail');?>">
<input name="career_experience" type="text"/>
<input name="career_salary" type="text"/>
<input name="career_resume" type="file"/>
</form>

这个

<input name="career_resume" type="text"/>

应该

<input name="career_resume" type="file"/>

在视图中:

<input name="career_resume" type="file"/>


在控制器中:

$file_name = $_FILES['career_resume']['name'];


更正:

添加了['career_resume']


说明:

当您打印$_FILES数组时,您会在键中获得的详细信息,该键实际上是输入文件标签的name

print_r($_FILES);

// will give you below array

Array
(
    [career_resume] => Array
    (
        [name] => abc.csv
        [type] => text/csv
        [tmp_name] => /tmp/phpkmmKZU
        [error] => 0
        [size] => 5466
    )
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM