CodeIgniter Session不保存Array

时间:2012-11-25 03:22:41

标签: arrays codeigniter session

我使用CodeIgniter Session with database来保存带有$ _FILES的数组,但不保存。我这样做(但数组永远不会增加):

表格的帖子,重定向到自己。

上传e加载上传页面的功能。

public function getUpload($codtemp, $codmessage){
    $this->load->library('session');
    $this->layout       = '';
    $data           = array();
    $data['codmessage'] = $codmessage;
    $data['codtemp']    = $codtemp;$tempfiles= $this->session->userdata('tempfiles');




    if (isset($_FILES['attachment']))
    {       
        $files = $this->fixGlobalFilesArray($_FILES['attachment']);

        foreach($files as $file)
        {
            $tempfiles[$codtemp][] = $file;
        }

        $this->session->set_userdata('tempfiles', $tempfiles);

        unset($files);
    }


    $this->parser->parse('attachment_upload', $data);
}

private static function fixGlobalFilesArray($files) {
    $ret = array();

    if(isset($files['tmp_name']))
    {
        if (is_array($files['tmp_name']))
        {
            foreach($files['name'] as $idx => $name)
            {
                $ret[$idx] = array(
                    'name' => $name,
                    'tmp_name' => $files['tmp_name'][$idx],
                    'size' => $files['size'][$idx],
                    'type' => $files['type'][$idx],
                    'error' => $files['error'][$idx]
                );
            }
        }
        else
        {
            $ret = $files;
        }
    }
    else
    {
        foreach ($files as $key => $value)
        {
            $ret[$key] = self::fixGlobalFilesArray($value);
        }
    }

    return $ret;
}

1 个答案:

答案 0 :(得分:0)

在保存数组之前,序列化数据并在获取数据后,反序列化。如果数据为空,则创建一个数组