Codeigniter 如何确保在上载之前选择文件

Codeigniter 如何确保在上载之前选择文件,codeigniter,file-upload,Codeigniter,File Upload,嗨,我正在使用codeigniter进行文件上传,我正在使用此代码 echo form_open_multipart('controller_a'); echo form_upload('userfile'); echo form_submit('Upload','upload'); echo form_close(); 我将指向上传文件的指针存储在数据库中, 我的问题是,我如何确保用户在单击上载按钮之前选择了一个文件,因为到目前为止,即使用户直接单击上载而没有选择文件,代码也会提交。您不能,

嗨,我正在使用codeigniter进行文件上传,我正在使用此代码

echo form_open_multipart('controller_a');
echo form_upload('userfile');
echo form_submit('Upload','upload');
echo form_close();
我将指向上传文件的指针存储在数据库中,
我的问题是,我如何确保用户在单击上载按钮之前选择了一个文件,因为到目前为止,即使用户直接单击上载而没有选择文件,代码也会提交。

您不能,至少在CodeIgniter中不能。您需要让JS覆盖表单的onsubmit属性,然后测试userfile输入的值。

您不能,至少在CodeIgniter中不能。您需要让JS覆盖表单的onsubmit属性,然后测试userfile输入的值。

使用JS

非常基本的代码,但它可以工作

<script type="text/javascript">

<!--

function validate_form ( )
{
    valid = true;

        if ( document.upload_form.something.value == "" )
        {
                alert ( "Please select a file before clicking upload ! " );
                valid = false;
        }

        return valid;
}

//-->

</script>
当用户在没有选择任何文件的情况下单击“上载”按钮时,它会提醒用户。

使用JS

非常基本的代码,但它可以工作

<script type="text/javascript">

<!--

function validate_form ( )
{
    valid = true;

        if ( document.upload_form.something.value == "" )
        {
                alert ( "Please select a file before clicking upload ! " );
                valid = false;
        }

        return valid;
}

//-->

</script>

当用户在没有选择任何文件的情况下单击上载按钮时,它会提醒用户。

您最好使用jQuery插件,如下所示:


这将允许您选择需要选择的输入值,并自定义一条消息,告知用户缺少哪些字段

最好使用jQuery插件,如下所示:


这将允许您选择需要选择的输入值,并自定义一条消息,告知用户缺少哪些字段

除了客户端验证之外,还应该使用服务器端验证。目前,CodeIgniter不提供函数,因此可以使用本机PHP函数
is\u uploaded\u file

if (is_uploaded_file($_FILES['myfile']['tmp_name']))
{
    $this->load->library('upload');

    $this->upload->do_upload('myfile');
}

除了客户端验证之外,您还应该使用服务器端验证。目前,CodeIgniter不提供函数,因此可以使用本机PHP函数
is\u uploaded\u file

if (is_uploaded_file($_FILES['myfile']['tmp_name']))
{
    $this->load->library('upload');

    $this->upload->do_upload('myfile');
}