2013-02-19 67 views
1

我有一些文件上傳的問題。我正在嘗試上傳兩個文件,但由於某種原因,第一個文件正在上傳兩次,並且沒有第二個文件的跟蹤。我究竟做錯了什麼?Codeigniter 2.1 - 表格上傳兩次相同的文檔

函數文件上傳(模型):

public function file_upload($folder, $allowed_type, $max_size = 0, $max_width = 0, $max_height = 0) 
{ 
    $folder = $this->path . $folder; 

    $files = array(); 
    $count = 0; 

    foreach ($_FILES as $key => $value) : 
     $file_name = is_array($value['name']) ? $value['name'][$count] : $value['name']; 
     $file_name = $this->global_functions->char_replace($file_name, '_'); 
      $count++; 
      $config = array(
      'allowed_types' => $allowed_type, 
      'upload_path' => $folder, 
      'file_name'  => $file_name, 
      'max_size'  => $max_size, 
      'max_width'  => $max_width, 
      'max_height' => $max_height, 
      'remove_spaces' => TRUE 
      ); 

     $this->load->library('image_lib'); 
     $this->image_lib->clear(); 
     $this->load->library('upload', $config); 

     if (!$this->upload->do_upload($key)) : 
      $error = array('error' => $this->upload->display_errors()); 
      return FALSE; 
     else : 
      $file = $this->upload->data(); 
      $files[] = $file['file_name']; 
     endif; 

    endforeach; 
    if(empty($files)): 
     return FALSE; 
    else: 
     return implode(',', $files); 
    endif; 
} 

功能形式的文件上傳(控制器):形式的

public function dokument_insert() 
{ 
    $this->admin_login_check(); 

    $dokument =explode(',', $this->doc->file_upload('/doc', 'pdf|PDF|doc|docx')); 
    var_dump($dokument); 
    $data = array(
     'naziv'   => $this->input->post('naziv_srb'), 
     'opis'   => $this->input->post('opis_srb'), 
     'path_pdf'  => $dokument[0], 
     'path_doc'  => $dokument[1], 
     'kategorija_id' => $this->input->post('kategorija'), 
     'jezik_id'  => $this->input->post('jezik') 
    ); 
    $this->doc->save($data); 
} 

部分的文件(視圖):

<label for="dokument_pdf">Dokument PDF</label> 
<input type="file" name="pdf" id="dokument_pdf"> 

<label for="dokument_doc">Dokument DOC</label> 
<input type="file" name="doc" id="dokument_doc"> 

回答

0

貌似是因爲你有2個文檔領域它無論如何都會循環的2倍,無論...

如果你想只有一個,你應該只通過發表單或者不使用ForEach,並且用固定名稱手動處理每個對方。