처음부터 차근차근

파일 업로드 본문

Framework/CodeIgniter

파일 업로드

_soyoung 2021. 11. 2. 09:30
반응형

CodeIgniter에서는 upload 라이브러리를 이용해서 파일을 업로드 할 수 있다.

 

 

 

upload 라이브러리 로드

$this->load->library('upload', $config);

 

 

 

upload 실행 코드

$this->upload->do_upload("업로드 파일 필드 name");

실질적인 파일 upload 실행하는 코드이다.

업로드에 성공하면 true를,

실패하면 false를 반환한다.

 

 

 

업로드 설정

$config['upload_path']   :   업로드 파일이 위치할 폴더경로

$config['allowed_types']   :   업로드를 허용할 파일의 마임타입(mime types)

$config['overwrite']   :    같은 이름의 파일이 이미 존재한다면 덮어쓸것인지 말것인지(true or false)

$config['max_size']   :   업로드 파일의 최대크기(KB)를 지정

$config['max_width']   :   업로드 파일의 최대 너비(픽셀단위) 를 설정

$config['max_height']   :   업로드 파일의 최대 높이(픽셀단위)를 설정

$config['max_filename']   :   파일이름의 최대길이를 지정

$config['encrypt_name']   :   파일이름을 암호화 할건지 말건지(true or false)

$config['remove_spaces']   :   파일명에 공백이 있을경우 밑줄(_)로 변경할건지 말건지(true or false)

 

 

 

 

예시)

업로드 하는 form

<form action="index.php/page/upload_run" method="post" enctype="multipart/form-data">
    <input type="file" name="upload_file" />
    <br><br><br>
    <input type="submit" value="저장"/>
</form>

enctype="multipart/form-data" 는 파일을 업로드할 때 항상 entype을 multipart로 해줘야한다.

input type="file" 을 하면 화면에 파일을 업로드할 수 있는 버튼이 생긴다.

 

 

upload_run() 함수

public function upload_run() {
    // 파일을 저장할 경로
    $config['upload_path'] = '.my/img';
    
    // 확장자가 git,jpg,png인 이미지 파일만 업로드 허용
    $config['allowed_types'] = 'gif|jpg|png';

	// 허용되는 파일의 최대 사이즈
    $config['max_size'] = '1000';

    // 허용되는 최대 가로 길이
    $config['max_width']  = '1024';

    // 허용되는 최대 세로 길이(높이)
    $config['max_height']  = '768';
    
    // 같은 이름의 파일이 있으면 덮어쓰기를 할건지
    $config['overwrite'] = TRUE;

    // upload 라이브러리 로드
    $this->load->library('upload', $config);

    // 파일 업로드 실행
    if($this->upload->do_upload("upload_file")) { // 업로드에 성공하면
        $data = array('upload_file' =>  $this->upload->data());
        var_dump($data);
    }
    else { // 업로드에 실패하면
        $error = array('error' =>  $this->upload->display_errors());
        var_dump($error);
    }
}

 

$this->upload->display_errors() : 파일 upload에 오류가 난 이유를 return하는 함수

$this->upload->data() : upload된 파일의 정보를 return하는 함수

do_upload() 메서드 안에는 매개변수로 꼭 파일 업로드하는 필드 이름을 넣어야 한다.

 

 

 

 

 

 

 

 

출처 : 'CodeIgniter - 생활코딩' 변형 및 요약

반응형

'Framework > CodeIgniter' 카테고리의 다른 글

Session과 login, logout구현  (0) 2021.11.12
CKEditor  (0) 2021.11.03
로그  (0) 2021.10.26
CodeIgniter 설정  (0) 2021.10.25
Form Validation  (0) 2021.10.17
Comments