이미지// 썸네일 경로 문의드립니다. 정보
이미지// 썸네일 경로 문의드립니다.
본문
전제1)
board skin이 아닌, 별도로 만드는 스킨입니다.
(스크랩된 내용물 중 사용자가 앨범이라는 항목에 체크한 것을 모아서 보여주는 스킨입니다.)
전제2)
게시판에서 에디터로 올린 이미지를 썸네일 추출하려고 합니다.
(스킨자료실의 고수님들의 소스를 응용해서 만들고 있습니다.)
다음과 같이 소스를 넣어, 썸네일 추출은 성공했습니다.
-----------------------------------------------------------------------------------------
//썸네일 생성
$thumbfile = "";
$thumb = $thumb_path.'/'.$list[$i][wr_id];
// 썸네일 이미지가 존재하지 않는다면
if (!file_exists($thumb)) {
$file = $list[$i][file][0][path] .'/'. $list[$i][bf_file];
// 업로드된 파일이 이미지라면
// $list[$i][bf_file]는 $list[$i][file][0][file]
// 스크랩에서는 $list[$i][file][0][file] 관련 쿼리가 없어서, 임의로 쿼리를 설정하여 명명함
if (preg_match("/\.(jpg|gif|png)$/i", $file) && file_exists($file)) { //첨부파일 이미지 썸네일 추출
$size = getimagesize($file);
if ($size[2] == 1)
$src = imagecreatefromgif($file);
else if ($size[2] == 2)
$src = imagecreatefromjpeg($file);
else if ($size[2] == 3)
$src = imagecreatefrompng($file);
else
continue;
$rate = $thumb_width / $size[0];
$height = (int)($size[1] * $rate);
// 계산된 썸네일 이미지의 높이가 설정된 이미지의 높이보다 작다면
if ($height < $thumb_height)
// 계산된 이미지 높이로 복사본 이미지 생성
$dst = imagecreatetruecolor($thumb_width, $height);
else
// 설정된 이미지 높이로 복사본 이미지 생성
$dst = imagecreatetruecolor($thumb_width, $thumb_height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $thumb_width, $height, $size[0], $size[1]);
imagejpeg($dst, $thumb_path.'/'.$list[$i][wr_id], $thumb_quality);
chmod($thumb_path.'/'.$list[$i][wr_id], 0606);
// ↑ 첨부파일 이미지 썸네일 추출은 문제가 없습니다. (참고로 올림)
} else { // ↓ 여기부터 에디터 이미지 썸네일 추출
$edit_img = $list[$i]['wr_content'];
if (eregi("data/geditor/[^<>]*\.(gif|jp[e]?g|png|bmp)", $edit_img, $tmp)) { //지에디터 사용
$file = '../' . $tmp[0]; // 파일명
$size = getimagesize($file);
if ($size[2] == 1)
$src = imagecreatefromgif($file);
else if ($size[2] == 2)
$src = imagecreatefromjpeg($file);
else if ($size[2] == 3)
$src = imagecreatefrompng($file);
else
continue;
$rate = $thumb_width / $size[0];
$height = (int)($size[1] * $rate);
// 계산된 썸네일 이미지의 높이가 설정된 이미지의 높이보다 작다면
if ($height < $thumb_height)
// 계산된 이미지 높이로 복사본 이미지 생성
$dst = imagecreatetruecolor($thumb_width, $height);
else
// 설정된 이미지 높이로 복사본 이미지 생성
$dst = imagecreatetruecolor($thumb_width, $thumb_height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $thumb_width, $height, $size[0], $size[1]);
imagejpeg($dst, $thumb_path.'/'.$list[$i][wr_id], $thumb_quality);
chmod($thumb_path.'/'.$list[$i][wr_id], 0606);
// $thumb_path.'/'.$list[$i][wr_id] <--- 에디터 이미지의 썸네일 경로 를 인식하지 못함
-----------------------------------------------------------------------------------------
앞에서 말씀드린 것처럼 썸네일은 추출하는데,
첨부파일로 올린 경우는 썸네일 경로가 잘 나타나는데,
에디터로 올린 경우에는 썸네일 경로를 인식하지 못합니다.
첨부파일로 올린 경우 : data/fille/B03/thumb/38
에디터로 올린 경우 : data/fille//thumb/38 (썸네일이 FTP상에서 data/file/thumb에 위치)
그냥 놔두어도 썸네일은 출력되지만,
썸네일 넘버(38)가 $wirte_table의 wr_id이기 때문에,
여러 게시판에서 썸네일을 추출하다보면 wr_id가 겹치게 될 것입니다.
data/fille//thumb/38 에서 // 사이에 write 테이블 이름이 안 들어가는 문제......
해결하고 싶습니다.
고수님들의 도움을 부탁드립니다. (__)
댓글 전체
일반적으로 $thumb_path 값 설정은 아래와 같이 합니다.
$data_path = $g4[path]."/data/file/$bo_table";
$thumb_path = $data_path.'/thumb';
참고하세요..
말씀을 뵙고, 혹시나 해서 확인해 봤더니 제가 쿼리 설정을 잘못했더군요.
$bo_table을 [board_file_table]에서 불러오게 설정했으니.....ㅠㅠ
바로 수정해서 정상으로 돌려놓았습니다. 감사드립니다.^^ (__)
잘 지내시죠.. 그냥 보고 반가워서요^^
인사차 남깁니다..~!
곧 찾아뵙고 자초지종을 말씀드리겠습니다.
이미 일현님께는 말씀을 드렸지요.
수일만 기다려주십시오. (__)