처음부터 차근차근
파일 업로드 본문
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 |