CI 코드
| sisco | |
|---|---|
|
Upload 라이브러리 수정하였습니다. 최신 패치 적용버전 1. 업로드 경로 지정했을때 경로가 없으면 무조건 error => 새로운 함수 추가로 경로가 없을시 폴더 생성 및 index.html 파일 생성 function make_dirs($path, $last_is_file=false);
$this->make_dirs($this->upload_path); //새로추가
// Is the upload path valid?
if ( ! $this->validate_upload_path())
{
// errors will already be set by validate_upload_path() so just return FALSE
return FALSE;
}
2. 파일명 처리 조건 순서 변경 파일명 클린 > 길이체크 > 공백제거(파일명 강제지정 이름도 공백제거) > encrypt화 > 파일명 강제지정 한글파일일경우 encrypt 안시키면 제대로 업로드 되더라도 파일명이 깨지는 경우 해결. 파일명 강제지정은 어떤 경우라도 같은 이름이 있으면 over write 3. encrypt 기본값 FALSE에서 TRUE로 변경 4. Form_validation 과의 연동 error_count(); 파일 업로드시 에러 발생한 경우.. 오류 갯수를 불러줌 set_errors($msg) 함수 끝에 $this->error_validation($msg); 추가
function error_count(){
return count($this->error_msg);
}
function error_validation($message){
$CI =& get_instance();
if(!isset($CI->form_validation))
return;
$CI->form_validation->_field_data[$this->field]['error'] = $message;
if ( ! isset($CI->form_validation->_error_array[$this->field]))
{
$label = $CI->form_validation->_field_data[$this->field]['label'];
$CI->form_validation->_error_array[$this->field] = $label." : ". $message;
}
}
function set_error($msg)
{
$CI =& get_instance();
$CI->lang->load('upload');
if (is_array($msg))
{
foreach ($msg as $val)
{
$msg = ($CI->lang->line($val) == FALSE) ? $val : $CI->lang->line($val);
$this->error_msg[] = $msg;
log_message('error', $msg);
}
}
else
{
$msg = ($CI->lang->line($msg) == FALSE) ? $msg : $CI->lang->line($msg);
$this->error_msg[] = $msg;
log_message('error', $msg);
}
$this->error_validation($msg); //추가내용
}
function error_validation($message) 함수 추가 => validation이 활성화 되었을때(로드 되었을때) 에러를 입력에러호출은 기존과 마찬가지로 validation_errors()로 동일 메세지 기준은 $lang 파일에 의해 결정됩니다. 한글판 랭귀지 파일을 가져다 쓰심이 좋을듯 합니다. 연계사항 : validation의 rules 에 의해 필드명과 label명이 연계됩니다. 필드명 : 에러가 발생했을시 validation의 field명을 찾아 에러 입력 레이블 : 에러발생시 field명의 label값을 가져옴 ex) 파일 업로드
$file_config = array(
'upload_path' => APPPATH . 'data',
'file_name' => $this->input->post('userid').".gif",
'allowed_types' => 'gif',
'max_size' => 5000,
'max_width' => 200,
'max_height' => 100);
$this->load->library('upload', $file_config);
$this->upload->do_upload('user_icon');
if($this->upload->error_count() > 0)
폼화면으로 이동
ex) rules 설정
$this->form_validation->set_rules('user_icon','회원아이콘','trim');
ex) html 파일 <?php echo validation_errors(); ?ex) 에러 출력사항 회원아이콘 : 업로드하려는 파일 유형은 허용되지 않습니다. |
|
| 번호 | 제 목 | 글쓴이 | 날짜 | 조회 | 추천수 |
|---|---|---|---|---|---|
| 591 | TapBBS 공개합니다~ [7] | KangMin | 2012-04-19 | 670 | 0 |
| 586 | CI에서 sqlite3 연동하기 [0] | 불의회상 | 2012-04-04 | 299 | 0 |
| 580 | CodeIgniter SimpleXML library [2] | 타로 | 2012-02-05 | 797 | 0 |
| 577 | CI 와 Smarty 템플릿의 결합 [4] | 불의회상 | 2012-01-26 | 899 | 0 |
| 573 | Okada Design Blog 소개 [3] | 타로 | 2012-01-12 | 884 | 0 |
| 568 | woctopus 계정관리도구 [2] | milosz | 2012-01-09 | 764 | 0 |
| 566 | 업로드된 이미지 정사각형으로 썸네일 만드는 함수 [3] | 불의회상 | 2012-01-06 | 781 | 0 |
| 554 | 코드 이그나이터를 접하고 처음으로 만들어본 객체 입.. [7] | 내일은 | 2011-11-11 | 2043 | 0 |
| 528 | 모델코드 생성기 [25] | 불의회상 | 2011-10-13 | 1706 | 1 |
| 525 | ci memo + tank_auth [2] | milosz | 2011-10-04 | 1467 | 0 |
| 512 | 포럼소스를 2.0.1 버전에 맞게 수정하였습니다. [2] | 탱크 | 2011-04-02 | 4093 | 2 |
| 509 | CI 메뉴얼 CHM 버전(영문 2.0) [1] | 브라이언 | 2011-03-30 | 1523 | 0 |
| 508 | CI 메뉴얼 CHM 버전 [0] | 브라이언 | 2011-03-30 | 1737 | 0 |
| 494 | ci memo [8] | pam | 2011-02-20 | 2286 | 1 |
| 489 | CI 압축 프로그램 [2] | 준이 | 2010-12-27 | 2022 | 0 |
| 482 | 듬직이님의 헬퍼 ip 부분 추가. [0] | 나이유미 | 2010-11-22 | 2419 | 0 |
| 475 | SELECT() 사용 시 문제점 [2] | 마냐 | 2010-09-16 | 3249 | 0 |
| 473 | CI의 사용자 인증 소스파일 [2] | corean | 2010-09-12 | 3848 | 0 |
| 471 | CI 1.7.2 한글 언어팩 1.1 [1] | cleansugar | 2010-08-26 | 2488 | 0 |
| 470 | Upload 라이브러리 수정본 [0] | sisco | 2010-07-28 | 2707 | 0 |

