0

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

形式的帖子,重定向到他自己。

上传功能 加载上传页面。

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;
}
4

1 回答 1

0

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

于 2013-11-02T16:43:20.973 回答