【问题标题】:Specific handling for an additional 3rd file upload in Codeigniter在 Codeigniter 中额外的第三个文件上传的具体处理
【发布时间】:2014-11-19 17:10:31
【问题描述】:

之前我创建了一个包含几个文件上传的表单,它工作正常,但现在我被要求添加第三个文件上传,第三次上传的字段作为选择中特定选项的结果动态显示存在于表单中,仅针对其中一个选项,出现第三次上传,没关系,没问题,但是,这个第三个文件的要求是它必须是 CSV 文件,当我做什么时如何处理它的类型其他两个文件(在表单控制器中)是这样的:

if (isset($_POST['save'])){
            $this->load->library('upload');
            $this->upload->initialize(array(
                "upload_path" => "uploads/",
                "overwrite" => TRUE,
                "remove_spaces" => TRUE,
                "allowed_types" => "txt|pdf|gif|jpg|png|tiff|doc|docx|rtf|jpeg",
                "max_size" => 1024*2048,
                "max_width"=> 1024,
                "max_height"=> 768,
                "xss_clean" => FALSE
            )); 

            foreach($_FILES as $field => $file){
                if($file['error'] == 0){
                    if ($this->upload->do_upload($field)){
                        $data = $this->upload->data();
                        array_push($arreglo, $data['file_name']);
                        echo ($data['file_name']);
                    }else{
                        $errors = $this->upload->display_errors();
                    }
                }
            }                        
        }

及其对应的验证规则;这第三个文件的不同之处在于它是一个 CSV 文件,当其他两个是图形或普通文档类型时,除了 CSV 之外,不应接受其他类型作为第三次上传,

【问题讨论】:

    标签: php file codeigniter upload


    【解决方案1】:

    (实际上是一半)解决了!当你上传文件时,$_FILES 超全局变量会为每个文件生成条目,即使你不上传它们,所以,回显$field,我发现我可以使用该键来分配文件类型,如下所示:

    foreach($_FILES as $field => $file){
             if($field != "file3"){
                    $config["allowed_types"] = "txt|pdf|gif|jpg|png|tiff|doc|docx|rtf|jpeg";
             }else{
                $config["allowed_types"] = "csv";
             }
     }
    

    使用图形文件作为第三次上传进行测试,只是没有上传!如果您使用 csv 文件,它可以毫无问题地上传:D

    后期编辑:实际上解决了一半,每次切换文件类型,如果有第三次上传,它切换到 csv 类型,如果没有,它保持图形/常规文档类型,有什么想法吗?谢谢你。

    最终编辑和解决方案:您只需逐个上传每个文件并在每种情况下使用不同的规则设置相同的配置,如果您想阅读它,我在这里找到了,感谢他的作者! multiple file upload with multiple config in codeigniter

    【讨论】:

      猜你喜欢
      • 2012-09-01
      • 2015-09-15
      • 2017-08-16
      • 2018-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-14
      • 1970-01-01
      相关资源
      最近更新 更多