CI 묻고 답하기

제목 메뉴얼 파일 업로드에 관해서,
글쓴이 룰루쭈쭈 작성시각 2015/09/25 13:43:54
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 14514   RSS
안녕하세요.
이제 CI 입문한 초보입니다.

controllers

<?php
/**
 * Upload Class
 *
 * Created on 2011. 11. 15.
 * @author 불의회상 <hoksi2k@hanmail.net>
 * @package library
 * @subpackage controllers
 * @version 1.0
 */
class Upload_lib extends CI_Controller {
    function __construct() {
        parent::__construct();
         
        // Form, Url Helper Load
        $this->load->helper('form');
         
        // Uload Config 설정
        $config = array(
            'upload_path' => FCPATH . './upload/',
            'allowed_types' => 'gif|jpg|png',
            'max_size' => '100'
        );
         
        $this->load->library('upload', $config);
    }
     
    function index() {
        $this->_view();
    }
     
    function do_upload() {
        if (!$this->upload->do_upload()) {
            $data = array('error' => $this->upload->display_errors(), 'upload_data' => '');
        } else {
            $data = array('upload_data' => $this->upload->data(), 'error' => '');
            unlink($data['upload_data']['full_path']); // 실제 업로드 로직 구현 할때는 이 라인을 삭제 하세요.
        }
 
        $this->_view($data);
    }
     
    function custom_upload() {
        // Upload Config 재설정
        $my_config = array(
            'upload_path' => FCPATH . './upload/',
            'allowed_types' => 'gif|jpg|png',
            'max_size' => '100',
            'max_width' => '1024',
            'max_height' => '768',
            'encrypt_name' => TRUE
        );
         
        // Upload init
        $this->upload->initialize($my_config);
        // Do Upload
        $this->do_upload();
    }
     
    function _view($data = '') {
        $data = $data == '' ? array('error' => '', 'upload_data' => '') : $data;
        $this->load->view('upload_lib_sample', $data);
    }
}

view

<?php $this->load->view('inc/header')?>
 
 
<hr />
Upload Test
<hr />
<?php echo form_open_multipart('upload_lib/do_upload');?>
<table class="tablesorter" border="0" cellpadding="0" cellspacing="1">
<thead>
<tr>
    <th style="text-align:center" width="20%">구분</th>
    <th style="text-align:center"></th>
</tr>
</thead>
<tr>
    <td style="text-align:center">이미지</td>
    <td><input type="file" name="userfile" size="20" />(gif|jpg|png)</td>
</tr>
<tr>
    <td colspan="2" style="text-align:center"><input type="submit" value="이미지 upload" /></td>
</tr>
</table>
</form>
 
<hr />
Upload Class 설정 변경 Test
<hr />
<?php echo form_open_multipart('upload_lib/custom_upload');?>
<table class="tablesorter" border="0" cellpadding="0" cellspacing="1">
<thead>
<tr>
    <th style="text-align:center" width="20%">구분</th>
    <th style="text-align:center"></th>
</tr>
</thead>
<tr>
    <td style="text-align:center">이미지</td>
    <td><input type="file" name="userfile" size="20" />(gif|jpg|png)</td>
</tr>
<tr>
    <td colspan="2" style="text-align:center"><input type="submit" value="이미지 upload" /></td>
</tr>
</table>
</form>
 
<?php if($upload_data != '' || $error):?>
<hr/>
업로드 결과
<hr/>
<table class="tablesorter" border="0" cellpadding="0" cellspacing="1">
<thead>
<tr>
    <th style="text-align:center" width="20%">구분</th>
    <th style="text-align:center">Data</th>
</tr>
</thead>
<?php if($upload_data != ''):?>
<?php foreach($upload_data as $item => $value):?>
<tr>
    <td><?php echo $item;?></td>
    <td><?php echo $value;?></td>
</tr>
<?php endforeach; ?>
<?php else:?>
<tr>
    <td style="color: red">Error</td>
    <td style="color: red"><?php echo $error;?></td>
</tr>
<?php endif;?>
</table>
<?php endif;?>
 
<?php $this->load->view('inc/footer')?>


CI 실행예제중의 파일 업로드인데요. 메뉴얼에 있는 내용은 잘 실행이 되었는데, 저건 어떻게 구현되는지 이해가 되질 않습니다.

<?php $this->load->view('inc/header')?> 이 구문도 어디에 있는지 이해가 되질않고요, 저 예제는 어떻게 해야합니까? ( 파일명도 메뉴얼엔 다 지정되있어서 알기 쉬웠는데 저건 파일명도 잘 모르겠네요.) 답변 부탁드립니다.
 다음글 알림에 대한 개념 (4)
 이전글 view 에서 php 함수를 안 쓰려 하는데요. 어찌 ... (2)

댓글

한대승(불의회상) / 2015/09/25 13:52:12 / 추천 0
views 폴더 아래 inc/header.php 뷰 파일을 로드 하라는 의미 입니다.

샘플 프로그램에 공통적으로 사용되는 css, js 파일을 가져오는 부분입니다.
룰루쭈쭈 / 2015/09/25 13:55:10 / 추천 0
ㄴ 아 감사합니다, 그럼 혹시 저거는 파일명을 어떻게 만들어야하나요?

그리고 죄송한데 css 등 찾고있는데 어디에 있는지 잘모르겠습니다.
한대승(불의회상) / 2015/09/30 09:10:43 / 추천 0
views 폴더 아래에 inc 폴더를 만들고 header.php, footer.php 파일을 만드시면 됩니다.
덧붙이자면 샘플 실행시에는 view 소스코드 내의 $this->load->view('inc/header'), ('inc/footer') 부분은 삭제 하셔도 됩니다.