CodeIgniter 한국사용자포럼 BETA
빠르고, 유연한 PHP Framework!

CI 코드


Upload 라이브러리 수정본      
sisco 0 2,707 0 0 2010-07-28 19:20:45
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