CI 묻고 답하기

제목 파일 업로드시 rename 관련 질문입니다.
글쓴이 수용이 작성시각 2013/05/08 16:08:07
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 15962   RSS

컨트롤러에서

 function index()
 {
   
  $uploadDir = DOC_ROOT.'/uploads/jumin/';
   echo "file=[".$_POST['RE_UIDNO']."]";
  if(!is_dir($uploadDir)){
   mkdir($uploadDir);
  }

  //delete_files($uploadDir);
  //$this->upload->file_name='';
  //$post = $_POST;
  $config['upload_path'] = $uploadDir;
  $config['allowed_types'] = 'gif|jpg|png';
  $config['overwrite'] = TRUE; 
  $config['file_name'] = $_POST['RE_UIDNO'];   
  $config['max_size'] = '20000';        
  $config['max_width']  = '1500';      
  $config['max_height']  = '2000';
  $config['encrypt_name'] = FALSE;
  
  
  

  //$field_name = "userfile";
  $this->load->library('upload', $config);
  //$this->upload->initialize($config);
  if(!$this->upload->do_upload())
  {

  }else{

   //echo $this->upload->data();
   $daf = $this->upload->data();
   $dat_arr3 = array(
    'original_name'=>$daf['orig_name'],
    'file_name'=>$daf['file_name'],
    'file_type'=>$daf['file_type'],
    'reg_date'=>date("Y-m-d H:i:s")
   );
   //$this->db->insert('files', $dat_arr3);
   $data = $this->upload_model->file_upload($daf,$_POST);
   echo "".$daf['file_name']."";
  }
  
 }

요렇게 하면 $config['file_name'] = $_POST['RE_UIDNO'];   <-- 이부분에서 제가 원하는 값으로 파일 명이 변경된다고
하는데....  변경되지가 않습니다.
$_POST['RE_UIDNO'];   <-- 요값은 echo 로 찍으니까 제대로 나옵니다.




view 부분입니다.
<form  method="post" name="write_post" id="write_post" action="/index.php/fileupload/index" enctype="multipart/form-data">
<input  type="hidden" name='CG_CODE' id='CG_CODE'/>
<input  type="hidden" name='CL_CODE' id='CL_CODE'/>
<input  type="hidden" name='PICTURE_FILE' id='PICTURE_FILE'/>
<input type="hidden" id=''RE_UIDNO'' name='RE_UIDNO'/>
<input type="hidden" id='CL_NAME' name='CL_NAME'/>

 다음글 model 에서 보낸 값이 view에서 출력이안되요;; (3)
 이전글 download helper로 다운로드시 한글깨짐 (3)

댓글

변종원(웅파) / 2013/05/08 16:17:05 / 추천 0
착각을 하신듯. $config 변수는 업로드 액션에 해당하는 변수입니다.

$dat_arr3 = array(
    'original_name'=>$daf['orig_name'],
    'file_name'=>$_POST['RE_UIDNO'],
    'file_type'=>$daf['file_type'],
    'reg_date'=>date("Y-m-d H:i:s")
   );
   $this->db->insert('files', $dat_arr3);

$_POST['RE_UIDNO']  쓰지말고 $this->input->post('RE_UIDNO', TRUE); 로 사용하세요.

왜 그런지는 매뉴얼 참고하시구요.

http://www.cikorea.net/user_guide_2.1.0/libraries/input.html

수용이 / 2013/05/08 16:43:42 / 추천 0
웅파님 답변 감사합니다.
$this->input->post('RE_UIDNO', TRUE);  는 수정했습니다. ^^

음 제가 이해가 잘안되서 다시 질문드리면 

예)
실제 파일 aaa.jpg 업로드시
$config['file_name']  = "12345"; <-- 요기에 값을 셋팅하면
제 업로드 폴더에   12345.jpg로 오는거 아닌가요 ? 전 라이브러리 보고 그렇게 이해 했는데;;
실제로는 aaa.jpg그대로 업로드 되어서 질문 드린겁니다.
케이든 / 2013/05/08 18:10:07 / 추천 0
매뉴얼에 보면 확장자 까지 포함해야 한다고 나와있네요

추가 설명 하자면

$config['allowed_types'] = 'gif|jpg|png';

rename 할때 확장자가 위에서 허가된 타입이어야 바뀝니다.

수용이 / 2013/05/08 18:12:36 / 추천 0

음 해결했습니다.
코어 코드에 파일 rename 관련 소스가 빠져있었습니다.
제가 1.7.1 버젼으로 작업 하고있는데 
여기엔  
protected $_file_name_override = ''; <-- 요거 관련 해서 다빠져있더라구요;;
2.1.3버젼을 참고 해서 소스 추가 하니까 변경이 됩니다.
답변 감사합니다.
웅파님 복받으실꺼에요 ~

수용이 / 2013/05/08 18:13:55 / 추천 0
케이든 님도 신경 써주셔서 감사합니다.