【问题标题】:How to make sure a file is selected before uploading如何确保在上传之前选择文件
【发布时间】:2011-06-21 19:52:41
【问题描述】:

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

echo form_open_multipart('controller_a');
echo form_upload('userfile');
echo form_submit('Upload','upload');
echo form_close();

我将指向上传文件的指针存储在数据库中, 我的问题是如何确保用户在点击上传按钮之前选择了一个文件,因为到目前为止,即使用户直接点击上传而不选择文件,代码也会提交

【问题讨论】:

    标签: codeigniter file-upload


    【解决方案1】:

    除了客户端验证,您还应该使用服务器端验证。目前CodeIgniter没有提供函数,所以可以使用原生PHP函数is_uploaded_file

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        使用 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>
        

        甚至在表单中使用 onsubmit

        onSubmit="return validate_form ( );"
        

        当用户点击上传按钮而不选择任何文件时,它会提醒用户。

        【讨论】:

          【解决方案4】:

          最好的办法是使用如下的 jQuery 插件:

          http://bassistance.de/jquery-plugins/jquery-plugin-validation/

          这将允许您选择需要选择的输入值,并自定义消息以通知用户他们缺少哪些字段。

          【讨论】:

            猜你喜欢
            • 2014-12-10
            • 2011-05-14
            • 1970-01-01
            • 1970-01-01
            • 2022-11-13
            • 1970-01-01
            • 2020-12-16
            • 2011-10-23
            • 2011-03-13
            相关资源
            最近更新 更多