CI 묻고 답하기

제목 CI Image클래스관련 질문합니다!
글쓴이 율마 작성시각 2013/10/15 16:52:34
댓글 : 6 추천 : 0 스크랩 : 0 조회수 : 14486   RSS
 한 게시글에 이미지를 여러개 올릴 수 있는 게시판을 만들고 있는데요,

관리상 편의를 위하여 한 게시물의 이미지는 게시물 아이디를 폴더명으로 하여 같이 모아두려고 합니다.

이미지 리사이징을 겸해서 Image클래스를 이용하여 만들고 있는데,

잘 되지 않아 질문드립니다.

이란 콘트롤러 안에 _img_processing이라는 함수를 만들었습니다.
인자중 $mode는 리사이징 여부를, $path는 개시물 아이디를, 그리고 $file은 업로드된 파일 명을 의미하며,
다른 함수내에서 $this->_img_processing($mode,$path,$file); 로 호출해서 사용하고 있습니다.

경로문제가 아닐까... 하는 생각도 조금 들긴 하지만, 정확히 뭐가 문젠지는 모르겠네요.
살펴보시고 문제점이 보이시면 지적 부탁드립니다.
(혹은 다른 방법을 알려주셔도 좋습니다!)

function _img_processing($mode,$path,$file){

// 경로 설정
$directory = './uploads/products/'.$path;
$thumbDir = './uploads/products/'.$path.'/thumb';

// 오리지널 이미지가 저장될 폴더. 경로가 없으면 새로 만들어 줌
if ( !is_dir($directory) ){
mkdir($directory,0777);
// 썸네일 이미지가 저장될 폴더. 경로가 없으면 새로 만들어 줌
if ( !is_dir($thumbDir) ){
mkdir($thumbDir,0777);
// 이미지 리사이징 및 폴더 안으로 복사
$config['image_library'] = 'gd2';
$config['source_image'] = './uploads/products/'.$file;
$config['new_image'] = $directory;
if ( $mode == 'resize' ) {
$config['maintain_ratio'] = TRUE;
$config['width'] = 800;
$config['height'] = 800;
}
$this->load->library('image_lib',$config); 
$this->image_lib->resize();

// 원래 업로드한 파일을 지워줌
chmod($config['source_image'],0777);
delete_files($config['source_image']);
 
// 썸내일 생성
$config['source_image'] = $directory.'/'.$file;
$config['new_image'] = $thumbDir.'/'.$file;
$config['maintain_ratio'] = TRUE;
$config['width'] = 150;
$config['height'] = 150;
$this->image_lib->initialize($config); 
$this->image_lib->resize();
}
 다음글 데이터 조회 질문 (1)
 이전글 비동기 전송효과 (5)

댓글

변종원(웅파) / 2013/10/15 17:31:08 / 추천 0
어떤 에러가 나는지 올려주셔야죠. ^^
율마 / 2013/10/16 11:21:51 / 추천 0
 아...! 그렇군요!!
에러 라기보단 작동이 되지 않습니다.
다만... 폴더까지 생성은 되지만
그 후에 생성된 폴더 안에  이미지가 리사이징해서 복사가 되어야되는데 생성이 되지 않네요~
그리고 그 이후 코드가 실행이 되지 않고요!!
한대승(불의회상) / 2013/10/16 11:25:49 / 추천 0
흠...

$config['new_image'] = $directory;
이 부분이 뭔가 문제가 있어 보이네요.
파일명은 없고 디렉토리만 지정해 준듯 싶습니다.
율마 / 2013/10/16 12:22:02 / 추천 0
 으흠, 그 부분에 있어선 매뉴얼 보니 Path만 지정하면 워본 파일과 같은 이름으로 이미지가 복제된다고 되어 있습니다.
$config['new_image'] = $directory.'/'.$file
로 바꾸어 보았었는데 그대로입니다. ㅠ_ㅠ
한대승(불의회상) / 2013/10/16 13:34:52 / 추천 0
율마// 아... 제가 실수 했네요.

이 부분은 어떤가요?
$config['new_image'] = $thumbDir.'/'.$file;

이미지 업로드 관련 sample을 살펴 보세요.

http://sample.cikorea.net/sample_view/class/image_lib



변종원(웅파) / 2013/10/16 13:37:25 / 추천 0
아파치 로그, ci 로그 확인해보세요.

그리고 echo $this->image_lib->display_errors(); 로 에러 찍어보세요