Php 从回调验证代码点火器获取额外信息

Php 从回调验证代码点火器获取额外信息,php,codeigniter,Php,Codeigniter,我试图从控制器内部的回调中获取一些额外信息 控制器要求验证以下内容: $this->form_validation->set_rules('csvfile', 'Upload CSV', 'callback_csv_upload'); 验证回调应该管理有关文件上载的所有信息。 现在,我要做的是使用该工具将信息进一步上传到控制器中: $this->form_validation->set_rules('csvfile', 'Upload CSV', 'callback_

我试图从控制器内部的回调中获取一些额外信息

控制器要求验证以下内容:

$this->form_validation->set_rules('csvfile', 'Upload CSV', 'callback_csv_upload');
验证回调应该管理有关文件上载的所有信息。 现在,我要做的是使用该工具将信息进一步上传到控制器中:

 $this->form_validation->set_rules('csvfile', 'Upload CSV', 'callback_csv_upload');

do something with --- $this->lists->csvinfo;
//控制器内部的回调

function csv_upload(){
      if($_FILES['csvfile']['size'] != 0){
        $upload_dir = './uploads/';
        if (!is_dir($upload_dir)) {
             mkdir($upload_dir);
        }   
        $config['upload_path']   = $upload_dir;
        $config['allowed_types'] = 'csv|txt';
        $config['file_name']     = 'csv_'.substr(md5(rand()),0,7);

        $config['overwrite']     = false;
        $config['max_size']  = '5120';

        $this->load->library('upload', $config);
        if (!$this->upload->do_upload('csvfile')){
            $this->form_validation->set_message('csv_upload', $this->upload->display_errors());
            return false;
        }   
        else{
             $this->load->model('lists');
            $this->lists->set_csvinfo($this->upload->data());
            return true;
        }   
    }   
    else{
        $this->form_validation->set_message('csv_upload', "No csv file selected");
        return false;
    }
}
型号

Class Lists extends CI_Model
{
    public $csvinfo = 'xx';     

    function set_csvinfo($info){

        $this->csvinfo = $info;

    }

}
似乎无论我在回调中做什么都不会影响模型变量-in打印出默认的“xx”值。
如果我尝试在控制器中调用de set_csvinfo(),变量会发生变化,但在回调函数中调用时,变量不会发生变化。

我认为您的
$csvinfo
必须是一种数组,因为
$this->upload->data()
返回一个数组

Class Lists extends CI_Model
{
    public $csvinfo = [];      

    function set_csvinfo($info){

        $this->csvinfo = $info;

    }

}

我认为您的
$csvinfo
必须是一种数组类型,因为
$this->upload->data()
返回一个数组

Class Lists extends CI_Model
{
    public $csvinfo = [];      

    function set_csvinfo($info){

        $this->csvinfo = $info;

    }

}

除非调用$this->form_validation->run(),否则不会触发我的验证回调函数din


除非调用$this->form_validation->run(),否则不会触发我的验证回调函数din


尝试删除此处的单引号
$config['max_size']=5120
;非常感谢。我会的,但这不是问题所在。文件上传得很好,只是我不能在回调函数之外使用上传的文件信息。请尝试返回函数
retrun$this->lists->set_csvinfo($this->upload->data())
而不是
返回true仍然没有更改。我能告诉你返回结果吗?使用$info=$this->lists->csvinfo;什么都不做。噢,我认为你的
$csvinfo
变量应该是数组的一种,所以它必须是
$csvinfo=[]
,因为
$this->upload->data()
返回一个数组来删除这里的单引号
$config['max\u size']=5120
;非常感谢。我会的,但这不是问题所在。文件上传得很好,只是我不能在回调函数之外使用上传的文件信息。请尝试返回函数
retrun$this->lists->set_csvinfo($this->upload->data())
而不是
返回true仍然没有更改。我能告诉你返回结果吗?使用$info=$this->lists->csvinfo;什么都不做。噢,我认为你的
$csvinfo
变量应该是数组的一种类型,所以它必须是
$csvinfo=[]
,因为
$this->upload->data()
返回一个数组