0

$ _FILESで配列を保存するためにデータベースでCodeIgniterセッションを使用しますが、保存しません。私はこれを行います(ただし、配列はインクリメントしません):

フォームの投稿は、自分自身にリダイレクトされます。

アップロードする機能 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;
}
4

1 に答える 1

0

配列を保存する前にデータをシリアル化し、データを取得した後にシリアル化を解除します。データが空の場合、配列を作成します

于 2013-11-02T16:43:20.973 に答える