| 제목 | 다중업로드가 잘되지않습니다 | ||
|---|---|---|---|
| 글쓴이 | 지침 | 작성시각 | 2014/02/27 17:53:39 | 
| 
                         | 
                |||
| 
                        다중업로드시 리눅스에 업로드는 됩니다. 업로드할때 기존 파일이름으로 넣지 않고 소스에 보다시피 strtotime을 써서 날짜로 파일을 넣습니다 첫번째파일은 정확하게 예)13934913871.doc로 들어갑니다 두번째파일은 업로드는 되지만 소스를 보면 예)13934913871_1.doc 이렇게 들어가야 정상인데 139349138711.doc 이렇게 뒷자리에 1이 더 생겨서 들어갑니다 소스(1) 부분에 echo로 찍을땐 13934913871_1.doc 나오는데 업로드된 파일을 보면 139349138711.doc 이렇게 나옵니다 해결방법좀 알려주세요 ..  if(empty($config)){ 
  $config['upload_path'] = './upload/'; 
  $config['allowed_types'] = 'pdf|doc|docx|ppt|pptx|xls|xlsx'; 
  $config['file_name'] = $Time; 
  } 
  $this->load->library('upload', $config); 
  foreach($_FILES as $key => $value){ 
   switch ($key){ 
    case "userfile": 
    case "userfile2": 
     $config['file_name'] = $Time.'_1'; 
     echo $config['file_name'];            //// (1) 
     break; 
   }if ( ! $this->upload->do_upload($key)){ 
    $error = array('error' => $this->upload->display_errors()); 
    $this->load->view('test/index', $error); 
   }else{ 
    $upload_data= $this->upload->data(); 
   } 
  } 
                        
                     | 
                |||
| 다음글 | View 에서 소비할 javascript 위치.. (2) | ||
| 이전글 | $this->input->get('data'... (1) | ||
| 
                             
                                변종원(웅파)
                                /
                                2014/02/27 19:15:32 /
                                추천
                                0
                             
                             | 
                    
| 
                             
                                criuce
                                /
                                2014/02/28 03:05:18 /
                                추천
                                0
                             
                            
                                코드 보시면 foreach 안에서 config의 파일 이름을 다시 지정하고 있는데 이 값이 upload 라이브러리에 다시 적용되고 있지 않습니다. 
                        foreach 문 안에 config 설정 값 바꾸신후 다시 초기화 해주셔야 합니다. 메뉴얼 정독하고 해보세요.  | 
                    
| 
                             
                                지침
                                /
                                2014/02/28 17:28:27 /
                                추천
                                0
                             
                            
                                 변종원,criuce님 답변 감사합니다..  
                        다시 초기화 해서 하니 잘 들어갑니다.. //// 한가지만 더 질문해도 되나요.. 하루종일 해결할려고 했는데 도저히 머리가 아파서 질문해봅니다.. 아까전엔 파일을 여러개의 변수명을 받아서 업로드하니 $this->upload->data(); 가 먹혔지만 파일을 배열로 userfile[] 받아서 처리할려니 도저히 안되네요.... 
  public function do_upload(){
  $Time = strtotime("now"); //등록날짜
  $this->load->library('upload'); 
  $field_name = 'userfile';
  $cnt_field = count($_FILES[$field_name]['name']);
 
  $files = $_FILES;
  
  $config['upload_path'] = './upload/';
  $config['allowed_types'] = 'pdf|doc|docx|ppt|pptx|xls|xlsx';
  
  for($i=0; $i<=$cnt_field; $i++){
   if(!empty( $_FILES[$field_name]['name'][$i])){     //여러개 업로드할때 없는 파일을 제외하고 실행 
      
    
    $_FILES['userfile']['name'] = $files['userfile'][$i];
    $this->upload->initialize($config);
    
    $this->upload->do_upload(); 
    
    //print_r( $_FILES[$field_name]['name'][$i]);
    //print_r(!empty( $_FILES[$field_name]['name']['0']));
   }
  
  }
  
  
  
  
 }
소스는 이겁니다...$this->upload->do_upload($field_name); 할려니 배열이라서 업로드가 안됩니다.. 도저히 해결할수없어서 이렇게 질문을합니다.. 조금만 도움을 주시면 감사하겠습니다..  | 
                    
| 
                             
                                criuce
                                /
                                2014/03/01 05:35:45 /
                                추천
                                0
                             
                            
                                배열로 된걸 다시 풀어내는 수밖에 없어요.
                             
                         | 
                    
옵션에서 중복체크하는 걸 빼고 테스트해보세요.