로그인

  • 목록
  • 아래로
  • 위로
  • 쓰기
  • 검색

정보&강의 이미지 올리면서 일괄 리사이즈 (전체보드 적용 및 예외설정 가능)

첨부 1


write_update.skin.php 파일을 수정한다.


// 첨부 이미지 리사이징, 아래 보드는 제외함(원size대로).
if ($bo_table != aaaa && $bo_table != bbbb ) {
$img_limit_width = 600; // 제한할 이미지 폭
$img_quality = 90; // 이미지 품질
$data_path = $g4[path]./data/file/$bo_table;
$thumb_path = $data_path.'/thumbnail';
$sql2= select * from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' order by bf_no asc;
$results2 = sql_query($sql2);
for ($d=0; $row2=sql_fetch_array($results2); $d++) { //~~~~~~~~~~~~~~~~~~~~~~~~~~~
if ($_FILES[bf_file][name][$d])
{
$file = $data_path .'/'. $row2[bf_file];
if (preg_match(/\.(jp[e]?g|gif|png)$/i, $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
break;
$rate = $img_limit_width / $size[0];
$height = (int)($size[1] * $rate);
if ($size[0] > $img_limit_width){
@unlink($data_path.'/'.$row2[bf_file]);
$dst = imagecreatetruecolor($img_limit_width, $height);
imagecopyresampled($dst, $src, 0, 0, 0, 0, $img_limit_width, $height, $size[0], $size[1]);
// imagepng($dst, $data_path.'/'.$row2[bf_file], $board[bo_2]);
//이부분이 png 압축방식이어서 이미지 커졌나 봅니다.
//아래처럼 하니 줄어드는 것을 확실히 느껴집니다....^^
imagejpeg($dst, $data_path.'/'.$row2[bf_file], $img_quality);
chmod($data_path.'/'.$row2[bf_file], 0606);


$temp = @getimagesize(addslashes($file));
//---------->madem님이 알려주신 부분입니다.^^
$bf_size = @filesize(addslashes($file));
$sql = update $g4[board_file_table]
set bf_filesize = '$bf_size', bf_width='$temp[0]', bf_height='$temp[1]', bf_type='$temp[2]'
where bo_table = '$bo_table' and wr_id = '$wr_id' ;
sql_query($sql);
//---------->madem님이 알려주신 부분입니다.^^
}
}
}
}
}


이런 글도 찾아보세요!

공유

facebooktwitterpinterestbandkakao story
퍼머링크

댓글 1

인터미션 작성자 2008.09.03. 01:20
단, gd 라이브러리를 사용하므로 exif 정보가 유실된다.
권한이 없습니다. 로그인

신고

"님의 댓글"

이 댓글을 신고 하시겠습니까?

삭제

"님의 댓글"

이 댓글을 삭제하시겠습니까?