2012-11-25 3 views
0

나는 CodeIgniter 세션을 사용하여 $ _FILES가있는 배열을 저장하기 위해 데이터베이스와 세션을 공유하지만 저장하지 않습니다. 나는 이것을한다 (그러나 배열은 결코 증가하지 않는다) :CodeIgniter 세션 저장 안 함 배열

포스팅은 자신에게로 향한다.

업로드 기능은 업로드 페이지를로드합니다.

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

답변

0

배열을 저장하기 전에 데이터를 직렬화하고 데이터를 가져온 후에 직렬화를 해제하십시오. 데이터가 비어 있으면 배열을 만듭니다