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()
返回一个数组