$config['upload_path'] = './static/user'; // 사용자가 업로드 한 파일을 /static/user/ 디렉토리에 저장한다.
$config['allowed_types'] = 'gif|jpg|png'; // git,jpg,png 파일만 업로드를 허용한다.
$config['max_size'] = '0'; // 허용되는 파일의 최대 사이즈
$config['max_width'] = '0'; // 이미지인 경우 허용되는 최대 폭
$config['max_height'] = '0'; // 이미지인 경우 허용되는 최대 높이
$this->load->library('upload', $config);
if ( !$this->upload->do_upload("upfile")){
$error = array('error' => $this->upload->display_errors());
echo "파일업로드 실패:".var_dump($error);
exit;
}else{
$data = array('upload_data' => $this->upload->data());
var_dump($data);
}
$this->tboard1_model->binsert($B_id, $this->input->post('subject'), $this->input->post('name'), $this->input->post('contents'), $this->input->post('data'));
===========================================================
너무 답답하네요.. ㅠㅠ
코드이그나이터를 첨 써보고 있습니다.
파일은 잘 업로드 되고 있는데
1. 파일명이 한글일때 ?? 와 같이 서버에 업로드 됩니다. 원래 명칭대로 한글로 저장하려면 어찌해야할까요?
2. $this->tboard1_model->binsert($B_id,~~ 요로케 넘겨줘서 model 파일에서 DB에 파일명을 저장해야하는데..
업로드된 파일명을 어떻게 변수로 넘기는지 모르겠습니다.
http://jjnkj.cafe24.com/codeigniter/index.php/tboard1/bwrite/1
제가 연습하고 있는 게시판입니다.
도와주세욤~ ㅠㅠ
==================================================================
컨트롤쪽
파일 업로드 부분의 소스를
}else{
$upload_data = $this->upload->data();
}
이렇게 수정했습니다.
이제 DB에 파일명을 넘기고 받는게 다 되는데요..
정작 model 페이지에서는
Message: Use of undefined constant file_name - assumed 'file_name'
이런 경고문이 뜹니다.
public function binsert($B_id, $subject, $name, $contents, $upload_data){
$this->db->set('wdate', 'now()', false);//시간
$this->db->insert('tbaord'.$B_id, array(
'subject'=>$subject,
'name'=>$name,
'contents'=>$contents,
'upfile'=>$upload_data[file_name]));
}
변수는 이런식으로 전달해서 넣었습니다.
'upfile'=>$upload_data[file_name])
이 부분이 문제인데..
뭐가 문제인거죠? 값은 잘 저장이 되는데 어떻게 수정해야 에러문구를 없앨수 있을까요?
이렇게 저렇게 해보다가 변경해보니 파일명이 들어가긴 하는데
제가 한 방법이 맞는건가요?
$config['encrypt_name'] = TRUE; 설정 추가하고 (한글파일명을 랜덤하게 암호화된 이름으로 바꿔줍니다.)
파일저장할때는 file_name으로 하고 원래 이름은 orig_name을 사용하면 됩니다.
업로드 매뉴얼 맨 하단의 배열 아이템 설명 참고하세요.
화면에 보여줄때는 org_name을 보여주고 다운로드할때는 file_name을 사용합니다.
2. binsert(......, $data) 로 넘기세요. $this->input->post('data')가 아닙니다.
프로그램에서 업로드한 결과를 $data 변수에 담았으니 그대로 넘겨서 사용할 수 있습니다.
배열 내용은 모델함수 내부에서 var_dump($data) 해보세요.