📑 그누보드

그누보드 이미지 업로드시 리사이징 설정

(。θᗨθ。) 2022. 3. 6. 23:53

해당스킨폴더에 write_update.skin.php 추가


<?

if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가

 

/////////////////// 게시판 이미지 첨부시 파일 리사이징

$sql2=" select * from $g5[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++)  {

    echo resize_image($d,$row2,$bo_table,$wr_id);

}

 
/////////////////// 게시판 이미지 첨부시 파일 리사이징 끝

 

function resize_image($d,$row2,$bo_table,$wr_id)

{

    global $g5;

 

    if ($_FILES['bf_file']['name'][$d]) {

 

        $img_limit_width = 660; // 제한할 이미지 폭

        $img_quality = 70; // 이미지 품질

 

        $data_path = G5_DATA_PATH."/file/$bo_table";

 

        $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);

				//echo "1222";

			}

            else if ($size[2] == 2){

                $src = imagecreatefromjpeg($file);

				//echo "2222";

			}

            else if ($size[2] == 3){

                $src = imagecreatefrompng($file);

				//echo "3222";

			}

 

            $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]);

                imagejpeg($dst, $data_path.'/'.$row2['bf_file'], $img_quality);

                chmod($data_path.'/'.$row2['bf_file'], 0606);

                $bf_size = @filesize(addslashes($file));

 

                $sql = " update $g5[board_file_table] 

						set bf_filesize = '$bf_size' 

						where  bo_table = '$bo_table' and wr_id = '$wr_id'  ";

 

                sql_query($sql);

            }

        }

    }

    return $sql;

}

?>
728x90