제목 | 다중업로드가 잘되지않습니다 | ||
---|---|---|---|
글쓴이 | 지침 | 작성시각 | 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
배열로 된걸 다시 풀어내는 수밖에 없어요.
|
옵션에서 중복체크하는 걸 빼고 테스트해보세요.