| 제목 | Upload 라이브러리 수정본 | ||
|---|---|---|---|
| 글쓴이 | sisco | 작성시각 | 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) 에러 출력사항 회원아이콘 : 업로드하려는 파일 유형은 허용되지 않습니다. |
|||
| 첨부파일 |
MY_Upload.zip (5.9 KB) |
||
| 다음글 | CI 1.7.2 한글 언어팩 1.1 (1) | ||
| 이전글 | iScaffold (4) | ||
| 없음 |