2012-11-25 85 views
0

我使用CodeIgniter會話與數據庫保存$ _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; 
} 

回答

0

在保存數組之前,序列化數據並獲取數據之後,進行反序列化。如果數據爲空,則創建一個數組