웹 이미지 그냥 두면 폭주 합니다.
한장에 10mb가 넘는 이미지 DSLR로 나오는거 그냥 올립니다.
10mb 이미지 1000번 조회하면 10GB 트래픽 나옵니다.
후끈하죠.
그래서 특별히 작업사진의 이미지를 필요로 하지 않는 경우 제한을 할 수 있게 했습니다.
모든 게시판 테이블에 wr_imagesize 필드를 int(11)로 적용해야 합니다.
불당팩의 adm/b4_upgrade/upgrade_wr_imagesize.php 파일을 돌리면 되고,
sql_write.sql에 해당 필드를 추가해줘야 합니다.
chimage를 다 적용한 다음 write_update.php에서
// 불당팩 - 이미지 용량을 계산해서 wr_imagesize 필드를 업데이트 해줍니다.
$sql = " select sum(bc_filesize) as imagesum from $g4[board_cheditor_table] where bo_table = '$bo_table' and wr_id = '$wr_id' and del = 0 ";
$chsum = sql_fetch($sql);
$sql = " select sum(bf_filesize) as imagesum from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_type > 0 ";
$filesum = sql_fetch($sql);
$wr_imagesize = (int) ($chsum[imagesum] + ($filesum[imagesum])/1000);
$sql = " update $write_table set wr_imagesize = '$wr_imagesize' where wr_id = '$wr_id' ";
$sql = " select sum(bc_filesize) as imagesum from $g4[board_cheditor_table] where bo_table = '$bo_table' and wr_id = '$wr_id' and del = 0 ";
$chsum = sql_fetch($sql);
$sql = " select sum(bf_filesize) as imagesum from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$wr_id' and bf_type > 0 ";
$filesum = sql_fetch($sql);
$wr_imagesize = (int) ($chsum[imagesum] + ($filesum[imagesum])/1000);
$sql = " update $write_table set wr_imagesize = '$wr_imagesize' where wr_id = '$wr_id' ";
bbs/view.php에서
// 불당팩 : 과도한 이미지 size로 인한 출력제한 - 마지막에 둔다. 위에 프로세스는 일단 무조건 정상. 이거는 fortran이 아니니까.
if ($board[bo_image_max_size] && $view[wr_imagesize] > 0 && $view[wr_imagesize] > $board[bo_image_max_size]) {
$msg = "<font color=red><b>첨부파일과 웹편집기로 올린 이미지의 합계가 " . number_format($board[bo_image_max_size]) . " kb를 초과한 " . number_format($view[wr_imagesize]) . " kb 이므로 출력할 수 없습니다.<br>이미지를 줄여주시기 바랍니다.<br></b></font>";
if (($member[mb_id] && ($member[mb_id] == $view[mb_id]) || $is_admin))
$view[content] = $msg . $view[content];
else {
// count가 0이면 for loop가 수행된다.
$view[file][count] = -1;
// 신고 이미지정보도 안나오게 차단
$view['wr_singo'] = false;
// 내용에는 경고문만
$view[content] = $msg;
}
}
if ($board[bo_image_max_size] && $view[wr_imagesize] > 0 && $view[wr_imagesize] > $board[bo_image_max_size]) {
$msg = "<font color=red><b>첨부파일과 웹편집기로 올린 이미지의 합계가 " . number_format($board[bo_image_max_size]) . " kb를 초과한 " . number_format($view[wr_imagesize]) . " kb 이므로 출력할 수 없습니다.<br>이미지를 줄여주시기 바랍니다.<br></b></font>";
if (($member[mb_id] && ($member[mb_id] == $view[mb_id]) || $is_admin))
$view[content] = $msg . $view[content];
else {
// count가 0이면 for loop가 수행된다.
$view[file][count] = -1;
// 신고 이미지정보도 안나오게 차단
$view['wr_singo'] = false;
// 내용에는 경고문만
$view[content] = $msg;
}
}
그러면, 아래처럼 오류가 나옵니다.

함수가 없어서 오류가 나면 불당팩의 lib/b4.lib.php에 있습니다.
- opencode.co.kr -